我有一个包含BinData的集合。下面是一个文档示例:
我想做一些尺寸检查。
我可以把未压缩的大小加起来,我可以看到mongo的大小。但是,我没有明显的方法来计算数据字段的总大小。我找不到任何返回BinData大小的聚合函数。
db.passage.aggregate([{
$group: {
_id: 1,
count:{$sum : 1},
totalBytes : {$sum : "$origLength"},
compressedSize: {$sum : $XXX("$data")}}
}
]);发布于 2014-10-15 12:11:02
聚合目前还没有运算符来执行此操作。
使用服务器端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;
});发布于 2021-03-24 23:44:04
更新MongoDB 4.4将$binarySize()引入聚合框架
https://stackoverflow.com/questions/26379453
复制相似问题