MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Verwenden von findOne in mongodb, um ein Element mit der maximalen ID zu erhalten

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

tun
db.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}})