Following command can be used to evaluate query performance of a MongoDB Collection:
db.<collectionName>.find().explain("executionStats");
The above command would print result such as following. COLLSCAN represents the collection scan.
{
"queryPlanner" : {
"plannerVersion" : 1,
"namespace" : "vitalflux.user",
"indexFilterSet" : false,
"parsedQuery" : {
},
"winningPlan" : {
"stage" : "COLLSCAN",
"direction" : "forward"
},
"rejectedPlans" : [ ]
},
"executionStats" : {
"executionSuccess" : true,
"nReturned" : 100,
"executionTimeMillis" : 0,
"totalKeysExamined" : 0,
"totalDocsExamined" : 100,
"executionStages" : {
"stage" : "COLLSCAN",
"nReturned" : 100,
"executionTimeMillisEstimate" : 0,
"works" : 102,
"advanced" : 100,
"needTime" : 1,
"needYield" : 0,
"saveState" : 0,
"restoreState" : 0,
"isEOF" : 1,
"invalidates" : 0,
"direction" : "forward",
"docsExamined" : 100
}
},
"serverInfo" : {
"host" : "rs-HP83",
"port" : 27017,
"version" : "3.4.6",
"gitVersion" : "c55eb86ef46ee7aede3b1e2a5d184a7df4bfb5b5"
},
"ok" : 1
}
Query Performance Metrics
Following are some of the metrics to watchout for when evaluating query performance:
- totalKeysExamined: Total number of index entries scanned
- totalDocsExamined: Total number of documents scanned to find the results.
- executionTimeMillis: Time required to excute the query
Latest posts by Ajitesh Kumar (see all)
- Coefficient of Variation in Regression Modelling: Example - November 9, 2025
- Chunking Strategies for RAG with Examples - November 2, 2025
- RAG Pipeline: 6 Steps for Creating Naive RAG App - November 1, 2025
I found it very helpful. However the differences are not too understandable for me