MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Usando findOne no mongodb para obter o elemento com id máximo


Você deve usar find , como você já é, e não a agregação, que será mais lenta, pois precisa verificar todos os valores dos campos _id para descobrir o máximo.

Como os comentários apontaram, não diferença entre usar find() e findOne() - funcionalmente ou em termos de elegância. Na verdade, findOne no shell (e nos drivers que o implementam) é definido em termos de find (com limite -1 e com impressão bonita no shell).

Se você realmente quer fazer o equivalente a
db.collection.find().sort({_id:-1}).limit(1).pretty()

como findOne você pode fazer isso com esta sintaxe:
db.collection.findOne({$query:{},$orderby:{_id:-1}})