【发布时间】:2014-03-27 08:36:40
【问题描述】:
我遇到了 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
【问题讨论】:
标签: javascript mongodb document objectid objectsize