Achieve Pagination with MongoDB?

You can achieve pagination with the help of limit() and skip() in MongoDB. The skip() method bypasses a specified number of documents, while limit() restricts the number of documents returned.

Syntax

db.collection.find().skip(numberOfDocumentsToSkip).limit(documentsPerPage);

Sample Data

Let us create a collection with sample documents ?

db.paginationDemo.insertMany([
    {"CustomerName": "Chris", "CustomerAge": 23},
    {"CustomerName": "Robert", "CustomerAge": 26},
    {"CustomerName": "David", "CustomerAge": 24},
    {"CustomerName": "Carol", "CustomerAge": 28},
    {"CustomerName": "Bob", "CustomerAge": 29}
]);
{
    "acknowledged": true,
    "insertedIds": [
        ObjectId("5c949de44cf1f7a64fa4df52"),
        ObjectId("5c949df14cf1f7a64fa4df53"),
        ObjectId("5c949dfc4cf1f7a64fa4df54"),
        ObjectId("5c949e3e4cf1f7a64fa4df55"),
        ObjectId("5c949e474cf1f7a64fa4df56")
    ]
}

Display all documents from the collection ?

db.paginationDemo.find().pretty();
{
    "_id": ObjectId("5c949de44cf1f7a64fa4df52"),
    "CustomerName": "Chris",
    "CustomerAge": 23
}
{
    "_id": ObjectId("5c949df14cf1f7a64fa4df53"),
    "CustomerName": "Robert",
    "CustomerAge": 26
}
{
    "_id": ObjectId("5c949dfc4cf1f7a64fa4df54"),
    "CustomerName": "David",
    "CustomerAge": 24
}
{
    "_id": ObjectId("5c949e3e4cf1f7a64fa4df55"),
    "CustomerName": "Carol",
    "CustomerAge": 28
}
{
    "_id": ObjectId("5c949e474cf1f7a64fa4df56"),
    "CustomerName": "Bob",
    "CustomerAge": 29
}

Example: Page 1 (First 3 Records)

To get the first page with 3 documents per page ?

db.paginationDemo.find().skip(0).limit(3);
{ "_id": ObjectId("5c949de44cf1f7a64fa4df52"), "CustomerName": "Chris", "CustomerAge": 23 }
{ "_id": ObjectId("5c949df14cf1f7a64fa4df53"), "CustomerName": "Robert", "CustomerAge": 26 }
{ "_id": ObjectId("5c949dfc4cf1f7a64fa4df54"), "CustomerName": "David", "CustomerAge": 24 }

Example: Page 2 (Next 2 Records)

To get the second page, skip the first 3 documents ?

db.paginationDemo.find().skip(3).limit(3);
{ "_id": ObjectId("5c949e3e4cf1f7a64fa4df55"), "CustomerName": "Carol", "CustomerAge": 28 }
{ "_id": ObjectId("5c949e474cf1f7a64fa4df56"), "CustomerName": "Bob", "CustomerAge": 29 }

Key Points

  • skip(n): Skips the first n documents in the result set
  • limit(n): Limits the result to n documents
  • For page calculation: skip = (pageNumber - 1) * documentsPerPage

Conclusion

MongoDB pagination is achieved using skip() and limit() methods together. Skip bypasses documents from previous pages, while limit controls the page size for efficient data retrieval.

Updated on: 2026-03-15T00:21:35+05:30

322 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements