tryNext()(尝试取下一文档)
最后更新:2026-10-09
tryNext()(尝试取下一文档)
tryNext()尝试返回游标中的下一条文档,没有时返回null而不是抛错,语法为`const doc = db.users.find().tryNext()`。与next()在耗尽时抛错不同,tryNext()让遍历代码更安全简洁,特别适合条件循环和容错场景。
| 分类 | 游标 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.find(<条件>).tryNext()
返回值:下一条文档;游标耗尽时返回null。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// tryNext:无需hasNext的安全遍历
const cursor = db.users.find()
let doc
while ((doc = cursor.tryNext()) !== null) {
print(doc.name)
}
运行结果:
Alice
Bob
Cara
📌 注意事项
- 耗尽时返回null而非抛错
- 可用于替代hasNext()+next()的组合
- 遍历中想要立即停止可直接跳出循环
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QtryNext和next有什么区别?
A游标耗尽时next()抛错,tryNext()返回null,后者遍历更安全。
QtryNext能替代hasNext吗?
A可以,while ((doc = cursor.tryNext()) !== null)的写法无需hasNext()即可安全遍历。
QtryNext返回null就结束了吗?
A是的,null表示游标已耗尽,循环应退出。