hasNext()(判断是否还有下一条)
最后更新:2026-10-09
hasNext()(判断是否还有下一条)
hasNext()判断游标中是否还有下一条文档,语法为`while (db.users.find().hasNext()) { ... }`。它不会移动游标,只做检查,常与next()配对实现安全遍历。遍历结束时返回false。该方法是控制循环遍历游标的标准写法。
| 分类 | 游标 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.find(<条件>).hasNext()
返回值:布尔值:true表示还有下一条,false表示已耗尽。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// hasNext:安全遍历整个游标
const cursor = db.users.find({ age: { $gte: 18 } })
while (cursor.hasNext()) {
print(cursor.next().name)
}
运行结果:
Alice
Bob
Cara
📌 注意事项
- hasNext()不移动游标指针
- 游标耗尽后持续返回false
- 比直接调用next()更安全,避免越界抛错
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QhasNext和next怎么配合使用?
A典型循环:while (cursor.hasNext()) { const doc = cursor.next() },先判断再取值。
QhasNext会消耗游标吗?
A不会,它只判断是否存在下一条,不移动游标。
Q游标为空时hasNext返回什么?
A返回false,循环体不会执行,不会报错。