Lesson 42/100

Tutorials MongoDB Tutorial

Compound Indexes

Compound Indexes: 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 42 of 100

Compound Indexes

Foundations & CRUD ✓Queries & SchemaAggregation & ScaleAtlas & Projects

Queries & Schema · 2 — Design · ~6 min · MongoDB — Indexing & Performance

What is this?

A compound index includes multiple fields in order, like { tenantId: 1, status: 1, createdAt: -1 }. Field order matters — equality fields first, then sort/range fields.

Why should you care?

Multi-tenant lists almost always filter tenantId + status and sort by time. One compound index can serve that entire pattern.

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.orders.createIndex({ tenantId: 1, status: 1, createdAt: -1 })
db.orders.find({ tenantId: "acme", status: "open" }).sort({ createdAt: -1 }).limit(20)
db.orders.find({ tenantId: "acme", status: "open" }).explain("executionStats")

Run Example »

Edit the code below and click Run to see the result in Toolliyo’s live editor.

Code
Result

What happened?

  • The index prefix tenantId + status matches the filter; createdAt: -1 supports the sort.
  • explain should avoid an in-memory sort when the index fits.
  • Queries that skip tenantId cannot use this index efficiently.

Practice next

  1. Create the compound index.
  2. Run the find+sort and check explain.
  3. Query only { status: "open" } and see a worse plan.
  4. Add customerId after tenantId for support views.
  5. Compare with two separate single indexes — usually worse for this query.

Remember

Compound indexes serve multi-field filters + sorts. Order is Equality → Sort → Range. Prefixes of the index can still be used.

Tenant order inbox

B2B ops opens open orders newest first for their tenant.

Outcome: One IXSCAN returns the page without sorting in RAM.

Interview prep for this lesson

Practice these questions aloud after reading—each links to a full structured answer.

Junior Detailed
Explain SQL queries in the context of MongoDB.
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define SQL queri…
Mid Detailed
What are common mistakes teams make with Schema design when using MongoDB?
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define Schema de…
Senior Detailed
How would you debug a production issue related to Transactions in a MongoDB application?
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define Transacti…
Junior Detailed
Describe a real-world scenario where Normalization mattered in a MongoDB project.
Short answer: Interviewers want a crisp definition, a practical example from your projects, and awareness of trade-offs—not textbook dumps. Explain a bit more How to structure your answer (60–90 seconds) Define Normaliza…
Questions on this lesson 0

Sign in to ask a question or upvote helpful answers.

No questions yet — be the first to ask!

MongoDB Tutorial
Course syllabus

MongoDB Tutorial

MongoDB — Foundations
MongoDB — CRUD Operations
MongoDB — Query Operators
MongoDB — Schema Design
MongoDB — Indexing & Performance
MongoDB — Aggregation Pipelines
MongoDB — Replication & Sharding
MongoDB — Atlas & Security
MongoDB — Modern Features
MongoDB — Real-World Projects
Toolliyo Assistant
Ask about tutorials, ebooks, training, pricing, mentor services, and support. I use public site content only—not admin or internal tools.

care@toolliyo.com

Need callback? Share your details