skip() (Skip Documents)
Last updated: 2026-10-09
skip() (Skip Documents)
skip() discards the first N documents of a cursor: `db.users.find().sort({ age: 1 }).skip(10)`. It teams up with limit() for pagination — skip() is the offset, limit() the page size. Be aware that skipped documents must still be walked through, so large offsets get slow; prefer keyset pagination over an indexed field for big datasets.
| Category | Cursor |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
db.<collection>.find(<filter>).skip(<count>)
⚙️ Parameters
| count | Number of documents to skip. |
|---|
Returns:The cursor with N documents skipped (chainable).
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// skip: fetch docs 11-20 (page 2)
const page2 = db.users.find().sort({ _id: 1 })
.skip(10).limit(10).toArray()
page2.length
Output:
10
📌 Notes
- Larger offsets slow down skip — discarded docs are still scanned
- Without a sort, skip results are unstable; pair with sort()
- For big datasets, prefer keyset pagination over an index
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhy does skip-based pagination slow down with depth?
Askip(N) walks and discards N documents first; bigger offsets scan more. For deep pages, switch to keyset pagination.
QWhat happens when skip is used without sort?
AOrder is undefined, so pages can repeat or miss documents — always sort() before skip().
QWhat does skip(0) do?
Askip(0) skips nothing, equivalent to using the cursor as-is.