How can I get last 50 documents in mongoDB?

23k Views Asked by At

How can I get last 50 documents in mongoDB?

I have a collection which is made by

db.createCollection("collection",{capped:true, size:300000});

from this "collection"

I would like to have last 50 documents instead of get first 50 documents.

I know that I can get first 50 documents by using

db.collection.find().limit(50);

But how can I get last 50 documents?

Is this can be done simply with MongoDB API or should I implement this with programming?

3

There are 3 best solutions below

0
On

this should do the thing:

db.collection.find().sort({$natural: -1}).limit(50);
0
On

you need the last 50 documents from mongo collection, so this is the query

db.collection('collectionName').find().sort({$natural: -1}).limit(50);

// sort({$natural: -1}) for the last fields (desecnding)
// limit(50) because you need only 50 fields 
0
On

The last N added records, from less recent to most recent, can be seen with this query:

db.collection.find().skip(db.collection.count() - N)

In your case 50

db.collection.find().skip(db.collection.count() - 50)