2014-10-21 57 views
0

我有一個映射減少的工作似乎總是掛在一個文件上。我懷疑我的地圖函數會以某種方式將其投入無限循環,但我無法弄清楚。有什麼方法可以找出哪個文檔是被掛起的文檔?理想地調試它以某種方式?找到哪個文件導致Mongo掛起

回答

1

您可以初始化一個足夠大的地圖功能的計數器。如果循環到達計數器,則退出循環並使用特殊鍵(不會減少更好)和當前文檔內容發出。您可以使用此(這些)特殊鍵在結果集合中找到此文檔。

0

有沒有辦法找出哪些文件是一個它被掛在

利用print()功能的打印文檔的_id正在處理中,內Map()功能之前發射:

var map = function() { 
    print("Mapping "+this._id); 
    emit(this._id, this.value); 
}; 

理想情況下調試它在某種程度上

Java腳本的客戶端調試聲明,console.log()的等效,MongoDB中是print()聲明。它應該用於調試目的。

參見:http://docs.mongodb.org/manual/tutorial/troubleshoot-map-function/

另請參見:mongodb: how to debug map/reduce on mongodb shell