Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.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 system.profile.nsCaned是否显示错误的值?_Mongodb - Fatal编程技术网

Mongodb system.profile.nsCaned是否显示错误的值?

Mongodb system.profile.nsCaned是否显示错误的值?,mongodb,Mongodb,当我执行db.system.profile.find(…)query时,mongodb显示了错误的nscanned值(不是它使用的索引) 例如,如果我正在进行一些查询db.c.find(q).解释get { "cursor" : "index multi", "isMultiKey" : false, "n" : 23, "nscannedObjects" : 23, "nscanned" : 5133, "nscannedObjectsAllPlans" : 41

当我执行
db.system.profile.find(…)
query时,mongodb显示了错误的nscanned值(不是它使用的索引)

例如,如果我正在进行一些查询
db.c.find(q).解释
get

{
"cursor" : "index multi",   
"isMultiKey" : false,   
"n" : 23,   "nscannedObjects" : 23,     
"nscanned" : 5133,  
"nscannedObjectsAllPlans" : 41042,  
"nscannedAllPlans" : 51297, 
}
db.system.profile.find()为我返回
“nscaned”:51297,
。所以我看到它返回nscannellplans。是这样吗?我能以某种方式看到(过去)执行的真正的nscanned慢查询吗


真的,我只是想知道它在执行查询时是否使用了正确的索引。

是的,扫描了所有索引计划,它肯定会更高,而且nscaned是5133而不是51297,也就是扫描了所有计划扫描您包括实际的查询以及MongoDB服务器版本吗?
nscanned
值很可能高于预期值,因为查询无法有效地使用索引(例如,如果使用不区分大小写的索引)。如果您缺少
nscannedObjects
值(该值将显示查询需要扫描的文档数量),那么获得完整的解释输出也会很有帮助。很抱歉,“nscannedObjects”的格式不好:23,在explain中,它显示它有效地使用了索引……在db.system.profile中,它显示它不存在,并且查询看起来像
“time”:{“$gte”:ISODate(“2014-07-24T08:58:12Z”),“$lt”:ISODate(“2014-07-25T04:58:12Z”),“someId”:ObjectId(“5213cd2dd19ae17004ae6”),“someText”:/^a/