如何在Mongodb中获取单个文档的大小?
2022-08-30 05:41:29
我遇到了一个奇怪的mongo行为,我想澄清一下......
我的请求很简单:我想在集合中获得单个文档的大小。我发现了两种可能的解决方案:
- Object.bsonsize - 一些应该返回大小(以字节为单位)的javascript方法
- db.collection.stats() - 其中有一行'avgObjSize'在数据上产生一些“聚合”(平均)大小视图。它只是表示单个文档的平均大小。
当我仅使用一个文档创建测试集合时,两个函数返回不同的值。这怎么可能?
是否存在其他一些方法来获取mongo文档的大小?
在这里,我提供了一些执行测试的代码:
-
我创建了新的数据库“test”并输入了只有一个属性的简单文档:type:“auto”
db.test.insert({type:"auto"})
-
来自 stats() 函数调用的输出: db.test.stats():
{ "ns" : "test.test", "count" : 1, "size" : 40, "avgObjSize" : 40, "storageSize" : 4096, "numExtents" : 1, "nindexes" : 1, "lastExtentSize" : 4096, "paddingFactor" : 1, "systemFlags" : 1, "userFlags" : 0, "totalIndexSize" : 8176, "indexSizes" : { "_id_" : 8176 }, "ok" : 1
}
-
bsonsize 函数调用的输出: Object.bsonsize(db.test.find({test:“auto”}))
481