Query Optimization
Query Optimization: free step-by-step lesson with examples, common mistakes, and interview tips — part of MongoDB Tutorial on Toolliyo Academy.
On this page
MongoDB Tutorial · Lesson 49 of 100
Query Optimization
Foundations & CRUD ✓ → Queries & Schema → Aggregation & Scale → Atlas & Projects
Queries & Schema · 2 — Design · ~6 min · MongoDB — Indexing & Performance
What is this?
Query optimization is the practice of reading explain plans, fixing COLLSCAN, shaping indexes, reducing examined docs, and avoiding heavy sort/skip. Measure, change one thing, measure again.
Why should you care?
Guessing indexes wastes RAM. Real optimization uses executionStats: nReturned vs totalDocsExamined ratio should be close to 1 for selective queries.
See it live — copy this example
Open mongosh or MongoDB Compass, select database nosqlverse, then run the example. Change one field and run again.
db.products.createIndex({ category: 1, price: 1 })
const plan = db.products.find({ category: "audio", price: { $lte: 3000 } })
.sort({ price: 1 })
.explain("executionStats")
printjson({
stage: plan.queryPlanner.winningPlan,
examined: plan.executionStats.totalDocsExamined,
returned: plan.executionStats.nReturned
})
Run Example »
Edit the code below and click Run to see the result in Toolliyo’s live editor.
What happened?
- The compound index supports filter + price sort.
- printjson summarizes examined vs returned.
- If examined >> returned, tighten the filter or fix the index order.
Practice next
- Pick your slowest find from logs.
- Run explain("executionStats").
- Create or adjust one index.
- Force a hint({ category: 1, price: 1 }) and compare plans.
- Remove an unused index after checking $indexStats.
Remember
Use explain executionStats. Minimize docs examined. Index for real filters and sorts.
Black Friday latency war room
Engineers sort Atlas profiler by duration and fix the worst COLLSCAN first.
Outcome: Checkout browse p99 returns under budget.
Interview prep for this lesson
Practice these questions aloud after reading—each links to a full structured answer.
Sign in to ask a question or upvote helpful answers.
No questions yet — be the first to ask!