猿问

mongodb 3.0 中怎么显示cursor和nscanned?

如题
这是我用explain显示出来的数据
>db.users.explain("allPlansExecution").find({username:'user101'})
{
"queryPlanner":{
"plannerVersion":1,
"namespace":"test.users",
"indexFilterSet":false,
"parsedQuery":{
"username":{
"$eq":"user101"
}
},
"winningPlan":{
"stage":"FETCH",
"inputStage":{
"stage":"IXSCAN",
"keyPattern":{
"username":1
},
"indexName":"username_1",
"isMultiKey":false,
"direction":"forward",
"indexBounds":{
"username":[
"[\"user101\",\"user101\"]"
]
}
}
},
"rejectedPlans":[]
},
"executionStats":{
"executionSuccess":true,
"nReturned":1,
"executionTimeMillis":0,
"totalKeysExamined":1,
"totalDocsExamined":1,
"executionStages":{
"stage":"FETCH",
"nReturned":1,
"executionTimeMillisEstimate":0,
"works":2,
"advanced":1,
"needTime":0,
"needFetch":0,
"saveState":0,
"restoreState":0,
"isEOF":1,
"invalidates":0,
"docsExamined":1,
"alreadyHasObj":0,
"inputStage":{
"stage":"IXSCAN",
"nReturned":1,
"executionTimeMillisEstimate":0,
"works":2,
"advanced":1,
"needTime":0,
"needFetch":0,
"saveState":0,
"restoreState":0,
"isEOF":1,
"invalidates":0,
"keyPattern":{
"username":1
},
"indexName":"username_1",
"isMultiKey":false,
"direction":"forward",
"indexBounds":{
"username":[
"[\"user101\",\"user101\"]"
]
},
"keysExamined":1,
"dupsTested":0,
"dupsDropped":0,
"seenInvalidated":0,
"matchTested":0
}
},
"allPlansExecution":[]
},
"serverInfo":{
"host":"mongo2",
"port":27017,
"version":"3.0.0",
"gitVersion":"a841fd6394365954886924a35076691b4d149168"
},
"ok":1
}
达令说
浏览 325回答 2
2回答

噜噜哒

刚刚查了下文档,怪自己没仔细看结果。。queryPlanner.winningPlan.inputStage.stage列显示查询策略-IXSCAN表示使用Index查询-COLLSCAN表示使用列查询,也就是一个一个对比过去cursor中的索引名称移动到了queryPlanner.winningPlan.inputStage.indexName3.0中使用executionStats.totalDocsExamined来显示总共需要检查的文档数,用以取而代之nscanned。

SMILET

>db.person.find({age:{$lt:20}}).explain("executionStats")"executionStats":{"executionSuccess":true,"nReturned":20,"executionTimeMillis":567,"totalKeysExamined":0,"totalDocsExamined":1000000,"executionStages":{"stage":"COLLSCAN","filter":{"age":{"$lt":20}},"nReturned":20,"executionTimeMillisEstimate":520,"works":1000002,"advanced":20,"needTime":999981,"needFetch":0,"saveState":7812,"restoreState":7812,"isEOF":1,"invalidates":0,"direction":"forward","docsExamined":1000000}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答