allowDiskUse() (Allow Disk for Sort)
Last updated: 2026-10-09
allowDiskUse() (Allow Disk for Sort)
allowDiskUse() lets a cursor spill to disk for blocking operations like sort() that demand heavy memory: `db.users.find().sort({ age: -1 }).allowDiskUse()`. Sorts over the 100MB memory cap error by default; with this flag, intermediate results land in temp files. It rescues huge sorts and aggregations at the cost of disk-IO performance.
| Category | Cursor |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
db.<collection>.find(<filter>).sort(<sortKey>).allowDiskUse()
Returns:The cursor with disk spill enabled (chainable).
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// allowDiskUse: allow disk spill for a huge sort
const result = db.logs.find({ level: 'error' })
.sort({ timestamp: -1 })
.allowDiskUse()
.toArray()
result.length
Output:
1200
📌 Notes
- The default per-sort memory cap is 100MB; beyond it errors
- With disk spill, intermediate results go to temp files — slower
- The aggregation pipeline has an equivalent allowDiskUse option
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QWhen do I need allowDiskUse?
AEnable it when a sort or aggregation exceeds the 100MB memory cap and errors, e.g. sorting an entire huge collection.
QDoes allowDiskUse hurt performance?
AYes — disk spills are far slower than pure in-memory work; prefer index-backed sorts to avoid them.
QIs allowDiskUse the same as the aggregation option?
ASame semantics — disk spill for intermediates; the cursor method serves find().sort(), the aggregation option serves aggregate().