我有一个包含BinData的集合。这是一个示例文档:
我想进行一些尺寸检查。
我能够将未压缩的大小相加,我可以看到mongo db大小。但我没有明显的方法来计算数据字段的总大小。我找不到任何返回BinData大小的聚合函数。
db.passage.aggregate([{
$group: {
_id: 1,
count:{$sum : 1},
totalBytes : {$sum : "$origLength"},
compressedSize: {$sum : $XXX("$data")}}
}
]);
答案 0 :(得分:0)
汇总目前没有运营商这样做 这是使用服务器端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;
});
答案 1 :(得分:0)
更新 MongoDB 4.4 将 $binarySize() 引入聚合框架