在Mongodb中,如果nscannedObjects =集合中的总记录是否意味着完整的集合扫描?

时间:2013-04-13 13:37:06

标签: mongodb

解释方法给出了以下结果

{
    "cursor" : "BtreeCursor headers.From_1",
    "isMultiKey" : false,
    "n" : 83057,
    "nscannedObjects" : 120477,
    "nscanned" : 120477,
    "nscannedObjectsAllPlans" : 120581,
    "nscannedAllPlans" : 120581,
    "scanAndOrder" : false,
    "indexOnly" : false,
    "nYields" : 0,
    "nChunkSkips" : 0,
    "millis" : 250,
    "indexBounds" : {
    "headers.From" : [
        [
            {
                "$minElement" : 1
            },
            {
                "$maxElement" : 1
            }
        ]
    ]
    },
    "server" : "Andrews-iMac.local:27017"
}

我的收藏中有120477条记录,这是否意味着我的查询执行了完整的收集扫描?

非常感谢任何帮助!!!

1 个答案:

答案 0 :(得分:6)

是的,这意味着扫描了所有文件。

  • 83057 与您的查询匹配的文档(n
  • 120477 扫描了文档(nscannednscannedObjects

documentation解释了解释输出中的字段。

相关文章在这里:

explain.n

  

n是一个反映与之匹配的文档数量的数字   查询选择标准。

explain.nscanned

  

指定扫描的文档或索引条目的总数   在数据库操作期间。你想要n和nscanned接近   价值尽可能。 nscanned值可能高于   nscannedObjects值,例如索引是否涵盖查询。看到   indexOnly。