MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Utilisation de findOne dans mongodb pour obtenir un élément avec un identifiant maximum

Vous devez utiliser find , comme vous l'êtes déjà, et non l'agrégation qui sera plus lente car elle doit analyser tout les valeurs des champs _id pour déterminer le maximum.

Comme les commentaires l'ont souligné, il n'y a non différence entre l'utilisation de find() et findOne() - fonctionnellement ou en termes d'élégance. En fait, findOne dans le shell (et dans les pilotes qui l'implémentent) est défini en termes de find (avec limite -1 et avec joli print dans le shell).

Si vous vraiment veux faire l'équivalent de

db.collection.find().sort({_id:-1}).limit(1).pretty()

comme findOne vous pouvez le faire avec cette syntaxe :

db.collection.findOne({$query:{},$orderby:{_id:-1}})