2017-01-19 4 views
0

pymongoの大きなコレクション(250K個のアイテム)でシンプルな検索を実行し、カーソルを反復処理します。カーソル反復は、毎回別の場所で失敗します。タイムアウトについてのこの話のウェブ上のすべてのドキュメンテーションは問題です。しかし、私にとってはタイムアウトを無効にしてもこの問題は解決されず、5の控えめなバッチサイズを使用しています。mongodbカーソルを反復するときのエラー(タイムアウトのためではない)

これは他のドライバとクライアントを使用するときに発生するので、これはpymongo問題ではありません。

これはpymongoコードです:

cursor = collection.find({}, no_cursor_timeout=True).max_time_ms(99999999).limit(50000).batch_size(5) 

これは問題になる可能性がどのようなどちらか

pymongo.errors.OperationFailure was unhandled by user code 
Message: collection dropped between getMore calls 

または

pymongo.errors.CursorNotFound was unhandled by user code 
Message: Cursor not found, cursor id: 3771706747850 

でいくつかの時点でエラーになりますか?

答えて

2

データベースに接続されている別のプログラムが定期的にコレクションを削除しています。コレクションが削除されたことを確認するためにMongoDBサーバーのログを確認することをお勧めします。次のようなエントリが表示されます:

2017-01-18T20:40:03.783-0500 I COMMAND [conn83] CMD: drop test.collection 
+0

ありがとうございました。それは...他のプログラムが何をしているのかを理解する時間がかかりました... – Stav

関連する問題