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

Comment obtenir les derniers N enregistrements dans mongodb ?

Si j'ai bien compris votre question, vous devez trier par ordre croissant.

En supposant que vous ayez un champ d'identification ou de date appelé "x", vous feriez ...

.sort()

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

Le 1 triera par ordre croissant (du plus ancien au plus récent) et -1 triera par ordre décroissant (du plus récent au plus ancien.)

Si vous utilisez le _id créé automatiquement champ il y a une date intégrée dedans... vous pouvez donc l'utiliser pour commander avant...

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

Cela renverra tous vos documents triés du plus ancien au plus récent.

Ordre naturel

Vous pouvez également utiliser un Ordre Naturel mentionné ci-dessus...

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

Encore une fois, en utilisant 1 ou -1 selon la commande souhaitée.

Utilisez .limit()

Enfin, il est recommandé d'ajouter une limite lorsque vous effectuez ce type de requête ouverte afin que vous puissiez faire l'un ou l'autre ...

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

ou

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