我正在使用MongoKit对大量数据执行迭代。
在此过程中,我的光标变为无效,我正在
OperationFailure: cursor id '369397057360964334' not valid at server
我在邮件列表中看到我可以将参数timeout=False
传递给.find()
方法,但PyMongo FAQ说我自己负责关闭光标。
但我没有在MongoKit中找到方法。
我需要手动关闭光标,如果是 - 我该怎么办?
答案 0 :(得分:9)
你必须关闭游标,因为MongoDB服务器不会为你超时游标,因为你明确要求它不要。
只需在光标上调用del
即可。 __del__
的默认pymongo实现将通知服务器终止光标。
假设有类似的东西:
cursor = db.test.find(timeout=False)
完成后只需这样做:
del cursor