【问题标题】:debug map/reduce, How to get size exceeding document?调试地图/减少,如何获得超过文档的大小?
【发布时间】:2013-11-13 08:14:18
【问题描述】:

我正在运行 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 日志中。但是

  1. 我发现无法确定 map/reduce 函数中某事物的 BSON 大小
  2. 我尝试使用 JSON 估计 BSON 的大小,但它从未触发:
if(JSON.stringify(ret).length > 10000000) {
    print('Document of size: ' + JSON.stringify(ret).length);
    print(JSON.stringify(ret));
    print();
}
return ret;

还有其他想法吗?

【问题讨论】:

  • 您能否发布相关集合中的 map/reduce 函数和示例文档?

标签: mongodb mapreduce bson


【解决方案1】:

Object.bsonsize({ ...... }) 将计算文档的 BSON 大小。

另外 10000000/1024/1024 也只有 9mb 左右,所以我不确定你的测试是否能捕捉到它。

【讨论】:

    猜你喜欢
    • 2018-09-15
    • 1970-01-01
    • 2021-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多