2011-06-01 115 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之间
  • 能力做代码生成和可变插在你的母语
相关问题