Sie sollten find
verwenden , wie Sie es bereits sind, und nicht die Aggregation, die langsamer sein wird, da sie alle scannen muss die Werte der _id-Felder, um das Maximum herauszufinden.
Wie in den Kommentaren erwähnt, gibt es nein Unterschied zwischen der Verwendung von find() und findOne() - funktional oder elegant. Tatsächlich findOne
in der Shell (und in den Treibern, die es implementieren) ist in Form von find definiert (mit limit -1 und mit hübschem Druck in der Shell).
Wenn Sie wirklich möchte das Äquivalent von
tundb.collection.find().sort({_id:-1}).limit(1).pretty()
als findOne
Sie können dies mit dieser Syntax tun:
db.collection.findOne({$query:{},$orderby:{_id:-1}})