在MongoDB中获取集合的执行状态
要获取统计信息,请explain()在MongoDB中使用。让我们创建一个包含文档的集合-
> db.demo157.insertOne({"Status":"Active"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e354fdffdf09dd6d08539fc")
}
> db.demo157.insertOne({"Status":"InActive"});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e354fe3fdf09dd6d08539fd")
}在find()方法的帮助下显示集合中的所有文档-
> db.demo157.find();
这将产生以下输出-
{ "_id" : ObjectId("5e354fdffdf09dd6d08539fc"), "Status" : "Active" }
{ "_id" : ObjectId("5e354fe3fdf09dd6d08539fd"), "Status" : "InActive" }以下是如何explain()在MongoDB中实现-
> db.demo157.find({Status: { $in: ['Active','InActive'] }}).explain("executionStats");这将产生以下输出-
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.demo157",
"indexFilterSet" : false,
"parsedQuery" : {
"Status" : {
"$in" : [
"Active",
"InActive"
]
}
},
"winningPlan" : {
"stage" : "COLLSCAN",
"filter" : {
"Status" : {
"$in" : [
"Active",
"InActive"
]
}
},
"direction" : "forward"
},
"rejectedPlans" : [ ]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 2,
"executionTimeMillis" : 18,
"totalKeysExamined" : 0,
"totalDocsExamined" : 2,
"executionStages" : {
"stage" : "COLLSCAN",
"filter" : {
"Status" : {
"$in" : [
"Active",
"InActive"
]
}
},
"nReturned" : 2,
"executionTimeMillisEstimate" : 0,
"works" : 4,
"advanced" : 2,
"needTime" : 1,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"invalidates" : 0,
"direction" : "forward",
"docsExamined" : 2
}
},
"serverInfo" : {
"host" : "DESKTOP-QN2RB3H",
"port" : 27017,
"version" : "4.0.5",
"gitVersion"
"3739429dd92b92d1b0ab120911a23d50bf03c412"
},
"ok" : 1
}