有没有办法在 MongoDB shell 中获取满足某个查询的所有文档的大小?
我正在创建一个工具,它将使用 mongodump
(参见 here)和 query
选项将特定数据转储到外部媒体设备上。但是,我想在开始转储之前查看是否所有文档都适合外部媒体设备。这就是为什么我想获取所有满足查询的文档的大小。
我知道 Object.bsonsize
方法描述 here , 但它似乎只返回一个文档的大小。
最佳答案
这是我找到的答案:
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。这一次,命令的大小与磁盘上的实际大小完全相同。
关于mongodb - 获取查询中所有文档的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33767460/