有没有办法在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之间
- 能力做代码生成和可变插在你的母语