如何在MongoKit中关闭光标

时间:2011-03-22 13:50:41

标签: python mongodb cursor pymongo mongokit

我正在使用MongoKit对大量数据执行迭代。

在此过程中,我的光标变为无效,我正在

OperationFailure: cursor id '369397057360964334' not valid at server

我在邮件列表中看到我可以将参数timeout=False传递给.find()方法,但PyMongo FAQ说我自己负责关闭光标。

但我没有在MongoKit中找到方法。

我需要手动关闭光标,如果是 - 我该怎么办?

1 个答案:

答案 0 :(得分:9)

你必须关闭游标,因为MongoDB服务器不会为你超时游标,因为你明确要求它不要。

只需在光标上调用del即可。 __del__的默认pymongo实现将通知服务器终止光标。

假设有类似的东西:

cursor = db.test.find(timeout=False)

完成后只需这样做:

del cursor