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

Pra*_* Gr -1 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"
}
Run Code Online (Sandbox Code Playgroud)

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

任何帮助是极大的赞赏 !!!

Wir*_*rie 6

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

  • 83057个文件符合您的查询(n)
  • 扫描了120477份文件(nscannednscannedObjects)

文档解释了解释输出中的字段.

相关部分在这里:

explain.n

n是反映与查询选择条件匹配的文档数的数字.

explain.nscanned

指定在数据库操作期间扫描的文档或索引条目的总数.您希望n和nscanned尽可能接近值.nscanned值可能高于nscannedObjects值,例如索引覆盖查询.请参阅indexOnly.