MongoDB cursor.tryNext() 方法

Mongodb 是一个非关系型数据库,而在 Mongodb 中,cursor.tryNext() 是用来检索游标的下一条文档的方法。如果有可用的文档,它将返回该文档,否则它将返回 null。

语法

下面是 cursor.tryNext() 方法的语法:

db.collection.find().tryNext()

使用场景

cursor.tryNext() 方法通常用于循环遍历结果集,以获取文档并执行某些操作,例如更新或删除文档。与 cursor.next() 方法不同的是, tryNext() 方法不会在没有可用文档时引发异常,而是返回 null。

示例

假设有一个名为 user 的集合,其中包含以下文档:

{ "_id" : ObjectId("60f52773a9b6799bfe852e12"), "name" : "Alice", "age" : 25 }
{ "_id" : ObjectId("60f5277ca9b6799bfe852e13"), "name" : "Bob", "age" : 30 }
{ "_id" : ObjectId("60f52786a9b6799bfe852e14"), "name" : "Charlie", "age" : 35 }

现在,我们可以使用以下代码来遍历文档并打印每个文档的 nameage 字段:

cursor = db.user.find()
while doc := cursor.tryNext():
    print(doc['name'], doc['age'])

输出结果为:

Alice 25
Bob 30
Charlie 35

如果我们尝试继续循环遍历结果集,cursor.tryNext() 方法将返回 null 并退出循环:

while doc := cursor.tryNext():
    print(doc['name'], doc['age'])
print('Done')

输出结果为:

Done

结论

cursor.tryNext() 方法是 Mongodb 游标对象的一个非常有用的方法,它可以帮助我们遍历结果集并获取文档,而不会因为没有可用文档而引发异常。与 cursor.next() 方法不同的是, tryNext() 方法在没有可用文档时返回 null。