2011-06-01 113 views

回答

2

要在Mongo shell中執行此操作,您可以定義您自己的調試版本emit()函數以打印跟蹤信息。

function emit(k, v) { 
    print("emit"); 
    print(" k:" + k + " v:" + tojson(v)); 
} 

在MongoDB文檔中檢出Troubleshooting MapReduce以獲取更多信息。

0

我知道Mongo文檔建議定義您自己的emit函數,但是我發現在我觀看Mongo日誌的同時直接在我的map和reduce函數中使用print()更容易。

只需在您的代碼中輸入print(),運行tail -f /var/log/mongodb/mongodb.log,然後運行您的代碼。你應該看到print()的輸出到控制檯。

這裏有幾個好處:

  • 調試能力的降低()函數 - 定義自己的EMIT()這裏沒有幫助
  • 無需每次定義EMIT()函數時間你火起來的蒙戈控制檯
  • 編寫代碼在你的編輯器,而不是來回控制檯和IDE之間
  • 能力做代碼生成和可變插在你的母語
相關問題