有没有办法在mapreduce函数中看到地图结果?

问题描述:

出于调试目的,能够看到你从地图方法中回来的东西真是太棒了。这是可能的红宝石?有没有办法在mapreduce函数中看到地图结果?

要在Mongo shell中执行此操作,您可以定义您自己的调试版本emit()函数以打印跟踪信息。

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

在MongoDB文档中检出Troubleshooting MapReduce以获取更多信息。

我知道Mongo文档建议定义您自己的emit函数,但是我发现在我观看Mongo日志的同时直接在我的map和reduce函数中使用print()更容易。

只需在您的代码中输入print(),运行tail -f /var/log/mongodb/mongodb.log,然后运行您的代码。你应该看到print()的输出到控制台。

这里有几个好处:

  • 调试能力的降低()函数 - 定义自己的EMIT()这里没有帮助
  • 无需每次定义EMIT()函数时间你火起来的蒙戈控制台
  • 编写代码在你的编辑器,而不是来回控制台和IDE之间
  • 能力做代码生成和可变插在你的母语