私はかなり大きなコレクションを持っており、結果の最初のバッチを返すか、失敗を示すのに長い時間がかかる可能性がある (意図的に) インデックスのないクエリを作成しています。たとえば、10 秒以内に何も返されない場合、これらのクエリは失敗します。だから私はこれを書いた:
try:
cur = big_collection.find(query, network_timeout=10)
for doc in cur:
print doc
except pymongo.errors.AutoReconnect:
print "failure!"
これはクライアントでは正常に機能しますcurrent_op
が、タイムアウト後もサーバーでクエリが実行され続けると述べています。ブロック内で試しcur.close()
てみdb.kill_cursors
ましたが、サーバーからデータを受信するまで残っているexcept
ため、機能しませんでした。cur.cursor_id
None
まだデータが返されていない場合でも、クエリを強制終了する方法はありますか?