有没有办法获得MongoDB shell中满足某个查询的所有文档的大小?
我正在创建一个工具,使用mongodump
(请参阅here)和query
选项将特定数据转储到外部媒体设备上。但是,我想在启动转储之前查看是否所有文档都适合外部媒体设备。这就是为什么我想获得满足查询的所有文档的大小。
我知道here所描述的Object.bsonsize
方法,但它似乎只返回一个文档的大小。
答案 0 :(得分:4)
以下是我找到的答案:
var cursor = db.collection.find(...); //Add your query here.
var size = 0;
cursor.forEach(
function(doc){
size += Object.bsonsize(doc)
}
);
print(size);
应该非常准确地输出文档的字节大小。
我已经两次运行命令了。第一次有141 215份文件,一旦倾倒,总共约有108 mb。命令输出与磁盘大小之间的差异为787字节。
我第二次运行命令时,有35 914 179个文件,一旦被丢弃,总共大约57.8 gb。这一次,我在命令和磁盘上的实际大小之间有相同的大小。