【问题标题】:Mongo aggregates: sum the number of bytes of BinData fieldMongodb聚合:对BinData字段的字节数求和
【发布时间】:2014-10-15 09:50:35
【问题描述】:

我有一个包含 BinData 的集合。这是一个示例文档:

  • _id: int
  • origLength: int(未压缩大小)
  • 上传日期:ISODate
  • 数据:(应用级别的压缩数据)

我想进行一些尺寸检查。

我能够总结未压缩的大小,我可以看到 mongo db 大小。但是我没有明显的方法来计算数据字段的总大小。我找不到任何返回 BinData 大小的聚合函数。

db.passage.aggregate([{
  $group: {
      _id: 1, 
      count:{$sum : 1}, 
      totalBytes : {$sum : "$origLength"}, 
      compressedSize: {$sum : $XXX("$data")}}
  }
]);

【问题讨论】:

    标签: mongodb


    【解决方案1】:

    聚合目前没有运营商这样做。
    可以选择使用服务器端 js 代码。

    db.eval(function() {
        var len = 0;
        db.passage.find({},{_id: 0, data: 1}).forEach(function(doc) {
            var b = doc.data;
            if (b instanceof BinData) {
                len += b.length();
            }
        });
        return len;
    });
    

    【讨论】:

      【解决方案2】:

      更新 MongoDB 4.4 将 $binarySize() 引入聚合框架

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-29
        相关资源
        最近更新 更多