我无法在 Mongodb 的解释查询输出中得到“nscanned”和“nscannedObjects”之间的确切区别。
在MongoDB Explain 文档中,我可以阅读:
nscanned检查的项目数(文档或索引条目)。项目可能是对象或索引键。如果涉及“覆盖索引”,则 nscanned 可能高于 nscannedObjects。
nscannedObjects扫描的文档数。
这两个领域有什么不同?更具体地说,当我有一个使用 BtreeCursor (索引)的查询时,这意味着什么,这两个字段有两个不同的值,例如:
{
"cursor" : "BtreeCursor a_1_b_1",
"isMultiKey" : false,
"n" : 5,
"nscannedObjects" : 5,
"nscanned" : 9,
(...)
}
我知道什么是“覆盖索引”。我想确切地了解查询在上面的示例中做了什么。它是否通过 ("scanned") 9 个元素 (nscanned = 9),其中所有元素都是索引条目并读取 ("examined") 其中只有 5 个 (nscannedObjects = 5) 的值以生成结果集?