Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb中的explain():与;nscanned”一词;及;nscannedObjects“;_Mongodb - Fatal编程技术网

Mongodb中的explain():与;nscanned”一词;及;nscannedObjects“;

Mongodb中的explain():与;nscanned”一词;及;nscannedObjects“;,mongodb,Mongodb,在Mongodb的解释查询输出中,我无法获得“nscanned”和“nscannedObjects”之间的确切区别 我可以阅读: n扫描检查的项目数(文档或索引项)。项目 可能是对象或索引键。如果涉及“覆盖指数”, nscanned可能高于nscannedobject 扫描对象扫描的文档数 这两个领域有什么不同? 更具体地说,当我有一个使用BtreeCursor(索引)的查询时,这两个字段有两个不同的值,例如: { "cursor" : "BtreeCursor a_1_b_1",

在Mongodb的解释查询输出中,我无法获得“nscanned”和“nscannedObjects”之间的确切区别

我可以阅读:

n扫描检查的项目数(文档或索引项)。项目 可能是对象或索引键。如果涉及“覆盖指数”, nscanned可能高于nscannedobject

扫描对象扫描的文档数

这两个领域有什么不同? 更具体地说,当我有一个使用BtreeCursor(索引)的查询时,这两个字段有两个不同的值,例如:

{
    "cursor" : "BtreeCursor a_1_b_1",
    "isMultiKey" : false,
    "n" : 5,
    "nscannedObjects" : 5,
    "nscanned" : 9, 
    (...)
}
我知道“a”是什么。 我想确切地理解上面示例中的查询做了什么。 它是否通过(“扫描”)9个元素(nscanned=9),其中所有元素都是索引项,并仅读取(“检查”)其中5个元素(nscannedObjects=5)的值以生成结果集?

这意味着:
查询返回了5个文档-
n

从索引扫描了9个文档-
n扫描

然后阅读收藏中的5个完整文档-
nscannedObjects

类似示例见:

如果“游标”是索引==>n扫描=扫描的索引数 否则,如果“游标”为FullTableScan=>nscanned=扫描的文档数

nscannedObjects==>扫描的文档数

查询时,尽量减少所有计数,即nscanned和nscannedObjects都是最小值,这意味着您的查询应该运行得更快