创建一个索引,然后使用explain()。让我们创建一个包含文档的集合-
> db.demo278.ensureIndex({"Subjects":1});
{
"createdCollectionAutomatically" : true,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
> db.demo278.insertOne({"Subjects":["MySQL","MongoDB","Java"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e49096edd099650a5401a55")
}
> db.demo278.insertOne({"Subjects":["C","C++"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e490978dd099650a5401a56")
}
> db.demo278.insertOne({"Subjects":["Spring","Hibernate"]});
{
"acknowledged" : true,
"insertedId" : ObjectId("5e490984dd099650a5401a57")
}在find()方法的帮助下显示集合中的所有文档-
> db.demo278.find();
这将产生以下输出-
{ "_id" : ObjectId("5e49096edd099650a5401a55"), "Subjects" : [ "MySQL", "MongoDB", "Java" ] }
{ "_id" : ObjectId("5e490978dd099650a5401a56"), "Subjects" : [ "C", "C++" ] }
{ "_id" : ObjectId("5e490984dd099650a5401a57"), "Subjects" : [ "Spring", "Hibernate" ] }这是检查性能的查询-
> db.demo278.find({Subjects:{$in:["Spring","MongoDB"]}}).explain();这将产生以下输出-
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "test.demo278",
"indexFilterSet" : false,
"parsedQuery" : {
"Subjects" : {
"$in" : [
"MongoDB",
"Spring"
]
}
},
"winningPlan" : {
"stage" : "FETCH",
"inputStage" : {
"stage" : "IXSCAN",
"keyPattern" : {
"Subjects" : 1
},
"indexName" : "Subjects_1",
"isMultiKey" : true,
"multiKeyPaths" : {
"Subjects" : [
"Subjects"
]
},
"isUnique" : false,
"isSparse" : false,
"isPartial" : false,
"indexVersion" : 2,
"direction" : "forward",
"indexBounds" : {
"Subjects" : [
"[\"MongoDB\", \"MongoDB\"]",
"[\"Spring\", \"Spring\"]"
]
}
}
},
"rejectedPlans" : [ ]
},
"serverInfo" : {
"host" : "DESKTOP-QN2RB3H",
"port" : 27017,
"version" : "4.0.5",
"gitVersion" : "3739429dd92b92d1b0ab120911a23d50bf03c412"
},
"ok" : 1
}