遍历pymongo游标需要无限时间可能是由于游标的查询结果非常庞大,或者查询条件没有正确设置导致的。以下是解决方法的示例代码:
import pymongo
# 创建MongoDB连接
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["mydatabase"]
collection = db["mycollection"]
# 设置查询条件
query = { "status": "active" }
# 创建游标
cursor = collection.find(query)
# 使用limit()方法限制查询结果数量
cursor.limit(1000)
# 使用sort()方法对查询结果进行排序
cursor.sort("name", 1) # 按name字段升序排列
# 遍历游标
for document in cursor:
print(document)
# 关闭游标
cursor.close()
在上述示例中,我们使用limit()
方法限制查询结果的数量,以便在遍历游标时不会无限等待。我们还使用sort()
方法对查询结果进行排序,确保结果按照我们的需求进行排序。
另外,如果查询结果非常庞大,遍历游标可能会消耗大量的时间和计算资源。在这种情况下,可以考虑使用分页查询或者使用聚合框架进行查询,以提高查询效率。