6

MongoKit を使用して、膨大な量のデータを反復処理しています。

このプロセス中にカーソルが無効になり、取得しています

OperationFailure: cursor id '369397057360964334' not valid at server

メソッドにパラメーターtimeout=Falseを渡すことができるメーリングリストを読みましたが、 PyMongo FAQには、カーソルを自分で閉じるのに気をつけていると書かれています。.find()

しかし、MongoKit にはそのためのメソッドが見つかりませんでした。

カーソルを自分で閉じる必要がありますか? はいの場合、どうすればよいですか?

4

1 に答える 1

9

MongoDB サーバーはカーソルをタイムアウトにしないように特に要求した場合、カーソルをタイムアウトしないため、カーソルを閉じる必要があります。

delカーソルを呼び出すだけです。のデフォルトの pymongo 実装は__del__、サーバーにカーソルを強制終了するよう通知します。

次のようなものを想定します。

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

完了したら、次のようにします。

del cursor
于 2011-03-22T16:08:00.993 に答える