sql >> Base de Datos >  >> NoSQL >> MongoDB

¿Cómo obtener los últimos N registros en mongodb?

Si entiendo su pregunta, debe ordenar en orden ascendente.

Suponiendo que tiene algún campo de identificación o fecha llamado "x", haría...

.clasificar()

db.foo.find().sort({x:1});

El 1 ordenará de forma ascendente (del más antiguo al más nuevo) y -1 ordenará de forma descendente (del más nuevo al más antiguo).

Si utiliza el _id creado automáticamente campo tiene una fecha incrustada en él ... por lo que puede usar eso para ordenar antes de ...

db.foo.find().sort({_id:1});

Eso devolverá todos sus documentos ordenados del más antiguo al más nuevo.

Orden Natural

También puede usar un Orden Natural mencionado anteriormente...

db.foo.find().sort({$natural:1});

Nuevamente, usando 1 o -1 dependiendo del orden que desees.

Usar .limit()

Por último, es una buena práctica agregar un límite al realizar este tipo de consulta abierta para que pueda hacer cualquiera de las dos...

db.foo.find().sort({_id:1}).limit(50);

o

db.foo.find().sort({$natural:1}).limit(50);