2011-03-22 7 views
6

私はMongoKitを使って膨大な量のデータを繰り返し処理しています。このプロセスの間MongoKitのカーソルを閉じるには

私のカーソルが無効になる、と私は私が.find()メソッドにパラメータtimeout=Falseを渡すことができるメーリングリストで読みましたが、PyMongo FAQは私がVAVEと言う

OperationFailure: cursor id '369397057360964334' not valid at server

を取得していますカーソルを自分で閉じる。

しかし、私はそれのためのMongoKitのメソッドを見つけませんでした。

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

答えて

9

MongoDBサーバーはカーソルをタイムアウトさせないようにしなければなりません。

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

のようなものと仮定:あなたが完了したら

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

を単純に次の操作を行います。

del cursor 
関連する問題