Gam*_*ega 3 mongodb mongodump mongo-shell mongodb-query
有没有办法在MongoDB Shell中获取满足特定查询的所有文档的大小?
我正在创建一个工具,该工具将使用mongodump(请参阅此处)带有query将特定数据转储到外部媒体设备上的选项。但是,我想在开始转储之前查看所有文档是否都适合外部媒体设备。这就是为什么我想获取满足查询条件的所有文档的大小。
我知道这里Object.bsonsize描述的方法,但是似乎它只返回一个文档的大小。
这是我找到的答案:
var cursor = db.collection.find(...); //Add your query here.
var size = 0;
cursor.forEach(
function(doc){
size += Object.bsonsize(doc)
}
);
print(size);
Run Code Online (Sandbox Code Playgroud)
应该相当准确地输出文件的字节大小。
我已经运行了两次命令。第一次,有141,215个文档,一旦被丢弃,总计约108 mb。命令的输出与磁盘大小之间的差异为787字节。
我第二次执行命令时,共有35 914 179个文档,一旦被丢弃,总共约57.8 gb。这次,我在命令和磁盘上的实际大小之间具有完全相同的大小。