MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Utilizzo di findOne in mongodb per ottenere l'elemento con max id

Dovresti usare find , come lo sei già tu, e non l'aggregazione che sarà più lenta poiché deve scansionare tutto i valori di _id campi per calcolare il massimo.

Come sottolineato dai commenti, non c'è no differenza tra l'uso di find() e findOne() - dal punto di vista funzionale o di eleganza. Infatti, findOne nella shell (e nei driver che la implementano) è definito in termini di find (con limite -1 e con pretty print nella shell).

Se davvero voglio fare l'equivalente di

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

come findOne puoi farlo con questa sintassi:

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