Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
-
Economics & Finance
Selected Reading
MongoDB query to select 10 most recent documents without changing order?
To select the 10 most recent documents in MongoDB without changing their order, use the skip() method with count() - 10. This skips the oldest documents and returns the last 10 in their original insertion order.
Syntax
db.collection.find().skip(db.collection.count() - 10);
Create Sample Data
db.demo500.insertMany([
{value: 10},
{value: 1200},
{value: 19},
{value: 28},
{value: 50},
{value: 70},
{value: 100},
{value: 10},
{value: 98},
{value: 80},
{value: 75},
{value: 68}
]);
{
"acknowledged": true,
"insertedIds": [
ObjectId("5e8749c5987b6e0e9d18f55a"),
ObjectId("5e8749c8987b6e0e9d18f55b"),
ObjectId("5e8749cb987b6e0e9d18f55c"),
ObjectId("5e8749cf987b6e0e9d18f55d"),
ObjectId("5e8749d1987b6e0e9d18f55e"),
ObjectId("5e8749d4987b6e0e9d18f55f"),
ObjectId("5e8749d7987b6e0e9d18f560"),
ObjectId("5e8749d9987b6e0e9d18f561"),
ObjectId("5e8749dc987b6e0e9d18f562"),
ObjectId("5e8749e0987b6e0e9d18f563"),
ObjectId("5e874c73987b6e0e9d18f564"),
ObjectId("5e874c78987b6e0e9d18f565")
]
}
Display All Documents
db.demo500.find();
{ "_id" : ObjectId("5e8749c5987b6e0e9d18f55a"), "value" : 10 }
{ "_id" : ObjectId("5e8749c8987b6e0e9d18f55b"), "value" : 1200 }
{ "_id" : ObjectId("5e8749cb987b6e0e9d18f55c"), "value" : 19 }
{ "_id" : ObjectId("5e8749cf987b6e0e9d18f55d"), "value" : 28 }
{ "_id" : ObjectId("5e8749d1987b6e0e9d18f55e"), "value" : 50 }
{ "_id" : ObjectId("5e8749d4987b6e0e9d18f55f"), "value" : 70 }
{ "_id" : ObjectId("5e8749d7987b6e0e9d18f560"), "value" : 100 }
{ "_id" : ObjectId("5e8749d9987b6e0e9d18f561"), "value" : 10 }
{ "_id" : ObjectId("5e8749dc987b6e0e9d18f562"), "value" : 98 }
{ "_id" : ObjectId("5e8749e0987b6e0e9d18f563"), "value" : 80 }
{ "_id" : ObjectId("5e874c73987b6e0e9d18f564"), "value" : 75 }
{ "_id" : ObjectId("5e874c78987b6e0e9d18f565"), "value" : 68 }
Get 10 Most Recent Documents
db.demo500.find().skip(db.demo500.count() - 10);
{ "_id" : ObjectId("5e8749cb987b6e0e9d18f55c"), "value" : 19 }
{ "_id" : ObjectId("5e8749cf987b6e0e9d18f55d"), "value" : 28 }
{ "_id" : ObjectId("5e8749d1987b6e0e9d18f55e"), "value" : 50 }
{ "_id" : ObjectId("5e8749d4987b6e0e9d18f55f"), "value" : 70 }
{ "_id" : ObjectId("5e8749d7987b6e0e9d18f560"), "value" : 100 }
{ "_id" : ObjectId("5e8749d9987b6e0e9d18f561"), "value" : 10 }
{ "_id" : ObjectId("5e8749dc987b6e0e9d18f562"), "value" : 98 }
{ "_id" : ObjectId("5e8749e0987b6e0e9d18f563"), "value" : 80 }
{ "_id" : ObjectId("5e874c73987b6e0e9d18f564"), "value" : 75 }
{ "_id" : ObjectId("5e874c78987b6e0e9d18f565"), "value" : 68 }
How It Works
The query calculates the total document count (12) and skips the first 2 documents (12 - 10 = 2), returning the remaining 10 documents in their original insertion order. This preserves the natural sequence while getting only the most recently inserted documents.
Conclusion
Use skip(count() - N) to retrieve the N most recent documents while maintaining their original insertion order. This approach is ideal when you need the latest documents without reordering them.
Advertisements
