相关疑难解决方法(0)

Mongo =获取单个文档的大小

我遇到了一个奇怪的mongo行为,我想稍微澄清一下......
我的请求很简单:我想在集合中获得单个文档的大小.我发现了两种可能的解决方

  • Object.bsonsize - 一些应该以字节为单位返回大小的javascript方法
  • db.collection.stats() - 其中有一行'avgObjSize',它在数据上产生一些"聚合"(平均)大小视图.它只代表单个文档的平均大小.

  • 当我使用一个文档创建测试集合时,两个函数都返回不同的值.这怎么可能?
    是否存在其他方法来获取mongo文档的大小?

在这里,我提供了一些我执行测试的代码:

  1. 我创建了新的数据库'test'并输入只有一个属性的简单文档:type:"auto"

    db.test.insert({type:"auto"})
    
    Run Code Online (Sandbox Code Playgroud)
  2. 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
    
    Run Code Online (Sandbox Code Playgroud)

    }

  3. bsonsize函数调用的输出:Object.bsonsize(db.test.find({test:"auto"}))

    481
    
    Run Code Online (Sandbox Code Playgroud)

javascript document objectsize mongodb objectid

68
推荐指数
4
解决办法
6万
查看次数

标签 统计

document ×1

javascript ×1

mongodb ×1

objectid ×1

objectsize ×1