如何在MongoKit中关闭游标

6 投票
1 回答
1360 浏览
提问于 2025-04-16 14:12

我正在使用MongoKit来处理大量数据。

在这个过程中,我的游标变得无效了,我收到了这个错误信息:

OperationFailure: cursor id '369397057360964334' not valid at server

我在邮件列表中看到,有人提到可以在.find()方法中传入参数timeout=False,但是PyMongo的常见问题说我需要自己处理游标的关闭。

不过我在MongoKit中没有找到相关的方法。

我需要自己关闭游标吗?如果需要的话,我该怎么做呢?

1 个回答

9

你需要关闭游标,因为MongoDB服务器不会自动关闭游标,因为你特别要求它不要这样做。

只需对你的游标调用一下 del。pymongo的默认实现会通过 __del__ 来通知服务器关闭这个游标。

假设你有这样的代码:

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

当你完成操作后,只需这样做:

del cursor

撰写回答