hasNext() (Check for Next Document)
Last updated: 2026-10-09
hasNext() (Check for Next Document)
hasNext() reports whether a cursor still has a next document: `while (db.users.find().hasNext()) { ... }`. It checks without advancing the cursor and pairs with next() for safe iteration, returning false at the end. It is the standard way to drive cursor loops.
| Category | Cursor |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
db.<collection>.find(<filter>).hasNext()
Returns:Boolean: true if a next document exists, false when exhausted.
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// hasNext: safely iterate the whole cursor
const cursor = db.users.find({ age: { $gte: 18 } })
while (cursor.hasNext()) {
print(cursor.next().name)
}
Output:
Alice
Bob
Cara
📌 Notes
- hasNext() does not advance the cursor
- Returns false once exhausted
- Safer than raw next(), avoiding end-of-cursor errors
🏷️ Related Tags
💡 Related Cases
More hands-on cases coming soon.
📚 Related Tutorials
❓ FAQ
QHow do hasNext and next work together?
AThe classic loop: while (cursor.hasNext()) { const doc = cursor.next() } — check first, then fetch.
QDoes hasNext consume the cursor?
ANo — it only checks, leaving the cursor position untouched.
QWhat does hasNext return for an empty cursor?
AIt returns false; the loop body never runs and no error occurs.