🧩 MongoDB Practice Series – Indexing & Performance Challenges (Part 7)
Welcome to Part 7 of the MongoDB Practice Series.
In this lesson, you will learn how to improve query performance using indexes.
Indexes help MongoDB find data faster, especially in large collections.
🟢 Exercise 1: Create a Simple Index
Problem:
Create an index on the email field in the users collection.
Solution:
db.users.createIndex({ email: 1 })
Learning Goal: Improve search performance on email queries.
🟡 Exercise 2: Find All Indexes
Problem:
Check which indexes exist in the products collection.
Solution:
db.products.getIndexes()
Learning Goal: Understand existing indexing structure.
🟡 Exercise 3: Remove an Index
Problem:
Remove the index on the price field.
Solution:
db.products.dropIndex({ price: 1 })
Learning Goal: Learn how to manage indexes properly.
🔵 Exercise 4: Create a Compound Index
Problem:
Create an index on both category and price fields.
Solution:
db.products.createIndex({ category: 1, price: -1 })
Learning Goal: Understand compound indexes for multi-field queries.
🔵 Exercise 5: Optimize a Slow Query
Problem:
The following query is slow:
db.orders.find({ customerName: "Amit" })
Task:
Improve its performance.
Solution:
db.orders.createIndex({ customerName: 1 })
Learning Goal: Use indexing to speed up frequently searched fields.
🔴 Exercise 6: Use Explain Plan
Problem:
Check how MongoDB executes a query.
Solution:
db.products.find({ price: { $gt: 1000 } }).explain("executionStats")
Learning Goal: Analyze query performance using explain.
🚀 Mini Challenge
You have a large users collection with millions of records.
Design indexes for the following queries:
- Search users by email
- Filter users by country
- Sort users by registration date
Think carefully:
- Should you use single-field or compound indexes?
- Which field is searched most frequently?
Try designing the indexing strategy before checking any solution.
🎯 What’s Next?
In Part 8 of the MongoDB Practice Series, we will practice:
- Real-world mini project challenges
- Complete database design scenarios
- Combining CRUD + Aggregation + Indexing
Stay tuned for the final advanced practice level!