2017-01-19 43 views
0

在pymongo的大集合(250K項)上運行一個簡單查找並遍歷遊標。遊標迭代失敗,每次都在不同的地方。網上關於這個關於超時問題的所有文檔都是問題。然而,對我來說,即使我禁用了超時,並且使用了適度的batch_size 5,這個問題仍然存在。我不認爲這是pymongo問題,因爲在使用其他驅動程序和客戶端時也會發生這種情況。迭代mongodb遊標時的錯誤(不是因爲超時)

這是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