MongoDB에서 쿼리 계획을 얻으려면 Explain()을 사용하십시오. $explain 연산자는 쿼리 계획에 대한 정보를 제공합니다.
문서로 컬렉션을 만들자 −
> db.demo408.insertOne({"Value":50}); { "acknowledged" : true, "insertedId" : ObjectId("5e70e3a115dc524f70227678") } > db.demo408.insertOne({"Value":20}); { "acknowledged" : true, "insertedId" : ObjectId("5e70e3a715dc524f70227679") } > db.demo408.insertOne({"Value":45}); { "acknowledged" : true, "insertedId" : ObjectId("5e70e3ac15dc524f7022767a") } > db.demo408.insertOne({"Value":35}); { "acknowledged" : true, "insertedId" : ObjectId("5e70e3af15dc524f7022767b") } > db.demo408.createIndex({Value:1}); { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }
find() 메서드를 사용하여 컬렉션의 모든 문서 표시 -
> db.demo408.find();
이것은 다음과 같은 출력을 생성합니다 -
{ "_id" : ObjectId("5e70e3a115dc524f70227678"), "Value" : 50 } { "_id" : ObjectId("5e70e3a715dc524f70227679"), "Value" : 20 } { "_id" : ObjectId("5e70e3ac15dc524f7022767a"), "Value" : 45 } { "_id" : ObjectId("5e70e3af15dc524f7022767b"), "Value" : 35 }
다음은 MongoDB에서 쿼리 계획을 이해하기 위한 쿼리입니다 -
> db.demo408.explain().find( { Value: { $gt: 40 } } );
이것은 다음과 같은 출력을 생성합니다 -
{ "queryPlanner" : { "plannerVersion" : 1, "namespace" : "test.demo408", "indexFilterSet" : false, "parsedQuery" : { "Value" : { "$gt" : 40 } }, "winningPlan" : { "stage" : "FETCH", "inputStage" : { "stage" : "IXSCAN", "keyPattern" : { "Value" : 1 }, "indexName" : "Value_1", "isMultiKey" : false, "multiKeyPaths" : { "Value" : [ ] }, "isUnique" : false, "isSparse" : false, "isPartial" : false, "indexVersion" : 2, "direction" : "forward", "indexBounds" : { "Value" : [ "(40.0, inf.0]" ] } } }, "rejectedPlans" : [ ] }, "serverInfo" : { "host" : "DESKTOP-QN2RB3H", "port" : 27017, "version" : "4.0.5", "gitVersion" : "3739429dd92b92d1b0ab120911a23d50bf03c412" }, "ok" : 1 }