我正在运行 map/reduce 作业,但它失败了,因为 reduce 步骤超过了 bson 文档的 16 mb 限制。而且我没有想法如何调试它。
exception: BSONObj size: 16808001 (0x41780001) is invalid.
Size must be between 0 and 16793600(16MB)
First element: 0: { 531.343: { 2: [ { strength: 121.0, acc: 23.0 } ] } }
我的问题是我无法访问文档,而只能访问输入的第一个元素。有没有办法得到完整的东西?
我的想法是检查reduce javascript中输出的大小并将数据打印到mongo日志中。但
- 我发现无法确定 map/reduce 函数中某物的 BSON 大小
- 我试图用 JSON 估计 BSON 的大小,但它从未触发:
if(JSON.stringify(ret).length > 10000000) {
print('Document of size: ' + JSON.stringify(ret).length);
print(JSON.stringify(ret));
print();
}
return ret;
还有其他想法吗?