2012-02-06 19 views
2

嗨我無法與MongoDB保持連接,並且它在連接失敗時終止中斷我的程序,我將如何繼續從最後一個失去連接的地方繼續打印,我保證指數的計數,但我怎麼使用計數,以從該位置在MongoDB在失去連接後從當前位置繼續

using (server.RequestStart(db)) 
{ 
    var cursor = col.FindAll(); 
    foreach (var item in cursor) 
    { 
     //code here 
    } 
} 

回答

1

爲什麼你有麻煩保持到您的MongoDB連接打開光標開始?在查詢過程中你是否失去了網絡連接?你超時了嗎?

通常情況下,可靠地重新啓動查詢的唯一方法是如果結果已排序,並且在重新啓動時使用查詢跳過已處理的文檔(換句話說,跳過那些排序關鍵字較少的文檔大於或等於最後處理的文件)。

您可能不需要調用RequestStart。唯一需要調用RequestStart的時間是,如果您想確保一系列數據庫操作都發生在同一個連接上(這隻在特殊情況下才需要)。

+0

我有超過一百萬條記錄,我正在對另一個數據庫進行驗證,但我僅限於每小時驗證一次特定數量,因此一次暫停一小時,然後繼續從當前位置繼續。您能否給我一個使用排序鍵從最後一條記錄繼續的語法示例。 – Dorf 2012-02-06 22:50:28

+0

我想我用「cursor.Skip = i;」得到它的工作。當它超時/失去聯繫時,讓我知道我是否傾向於錯誤的方向,謝謝羅伯特。 – Dorf 2012-02-06 23:31:01

相關問題