2011-03-22 24 views
6

我正在使用MongoKit對大量數據執行迭代。如何在MongoKit中關閉遊標

在這個過程中我的光標變爲無效,並且我得到

OperationFailure: cursor id '369397057360964334' not valid at server

我在郵件列表閱讀,我可以傳遞參數timeout=False.find()方法,但PyMongo FAQ說,我要VAVE照顧自己關閉光標。

但我沒有找到MongoKit的方法。

我是否需要手動關閉光標,如果是 - 我該怎麼做?

回答

9

您必須關閉遊標,因爲MongoDB服務器不會爲您超時遊標,因爲您明確地要求不要。

只需在您的光標上撥打del即可。 __del__的默認pymongo實現將通知服務器終止遊標。

假設是這樣的:

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

只要做到這一點,當你完成:

del cursor