找到导致Mongo挂起的文档

时间:2014-10-21 23:18:06

标签: mongodb mapreduce

我有一个map reduce工作,似乎总是挂在一个文件上。我怀疑我的地图功能会以某种方式将其抛向无限循环,但我无法弄清楚如何。有没有办法弄清楚哪个文件被挂起?理想情况下以某种方式调试它?

2 个答案:

答案 0 :(得分:1)

您可以在地图功能中初始化一个足够大的计数器。如果循环到达计数器然后退出循环并使用特殊键(不会减少更好)和当前文档内容发出。您可以使用此(这些)特殊键在结果集合中找到此文档。

答案 1 :(得分:0)

  

有没有办法弄明白哪个文件是挂在上的文件

利用print()功能打印当前正在处理的文档的_id,在Map()函数之前发布:

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

理想情况下以某种方式调试

mongodb中java脚本的客户端调试语句console.log()的等价物是print()语句。它应该用于调试目的。

参考:http://docs.mongodb.org/manual/tutorial/troubleshoot-map-function/

另请参阅:mongodb: how to debug map/reduce on mongodb shell