6

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

在此过程中,我的光标变得无效,我得到

OperationFailure: cursor id '369397057360964334' not valid at server

我在邮件列表中读到我可以将参数传递timeout=False.find()方法,但PyMongo 常见问题解答说我必须自己负责关闭光标。

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

我是否需要自己关闭光标,如果是 - 我该怎么做?

4

1 回答 1

9

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

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

假设类似:

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

完成后只需执行此操作:

del cursor
于 2011-03-22T16:08:00.993 回答