Indexes help MongoDB find data quickly without looking at every document. They work like a sorted list that points to where data lives.
How MongoDB indexes work (B-tree mental model)
db.collection.createIndex({ field: 1 })Use 1 for ascending order and -1 for descending order.
Indexes are stored as B-trees internally to keep data sorted and allow fast searching.
db.users.createIndex({ email: 1 })db.products.createIndex({ price: -1 })db.users.createIndex({ username: 1 }, { unique: true })This example inserts some products, creates an ascending index on price, then finds all products sorted by price.
use shop
db.products.insertMany([
{ name: "Pen", price: 1.5 },
{ name: "Notebook", price: 3.0 },
{ name: "Eraser", price: 0.5 }
])
db.products.createIndex({ price: 1 })
db.products.find().sort({ price: 1 })Indexes speed up queries but take extra space and slow down writes a bit.
B-tree structure means MongoDB keeps index keys sorted and balanced for fast lookups.
Use indexes wisely on fields you query often.
Indexes in MongoDB use B-tree structures to keep data sorted and searchable fast.
Creating an index on a field helps queries and sorting on that field run quickly.
Unique indexes prevent duplicate values in a field.
Practice
Solution
Step 1: Understand what a B-tree index does
A B-tree index organizes data so that searching and sorting can happen quickly.Step 2: Identify the main benefit of indexing
Indexes help queries find data faster by avoiding full collection scans.Final Answer:
To speed up search and sort operations on data -> Option CQuick Check:
Index = Faster search and sort [OK]
- Thinking indexes compress data
- Confusing indexes with backups
- Assuming indexes encrypt data
age in MongoDB?Solution
Step 1: Recall MongoDB index creation syntax
The correct method iscreateIndexwith a document specifying field and order.Step 2: Check the correct format for ascending order
Ascending order is represented by 1, so{age: 1}is correct.Final Answer:
db.collection.createIndex({age: 1}) -> Option AQuick Check:
createIndex + {field: 1} = correct syntax [OK]
- Using addIndex instead of createIndex
- Passing string 'asc' instead of 1
- Omitting curly braces around field
score, what will be the order of documents returned by this query?db.collection.find().sort({score: 1})Solution
Step 1: Understand the sort parameter
The sort({score: 1}) means sort by score ascending (lowest to highest).Step 2: Recognize index usage
Since there is an index on score, MongoDB uses it to return documents in ascending order efficiently.Final Answer:
Documents sorted by score in ascending order -> Option DQuick Check:
sort({score: 1}) = ascending order [OK]
- Confusing 1 with descending order
- Assuming no order without explicit index
- Thinking insertion order is default
email but still see duplicate emails in your collection. What is the likely cause?Solution
Step 1: Understand unique index behavior
Unique indexes prevent duplicates only for new inserts after index creation.Step 2: Consider existing duplicates
If duplicates existed before creating the unique index, MongoDB allows them unless you drop or clean data first.Final Answer:
The unique index was created after duplicates existed -> Option BQuick Check:
Unique index blocks new duplicates, not old ones [OK]
- Thinking ascending order affects uniqueness
- Believing MongoDB ignores unique constraints
- Assuming missing fields cause duplicates
category and sorting by price. Which index is best to improve performance?Solution
Step 1: Understand compound index benefits
A compound index on {category: 1, price: 1} supports queries filtering by category and sorting by price efficiently.Step 2: Compare with separate indexes
Separate indexes cannot optimize combined filter and sort as well as a compound index.Step 3: Consider uniqueness and collection size
Unique index on price is irrelevant here; small collections may not need indexes but that is not optimization.Final Answer:
A compound index on {category: 1, price: 1} -> Option AQuick Check:
Compound index = best for filter + sort [OK]
- Using separate indexes instead of compound
- Confusing unique index with performance index
- Ignoring index for small collections
Ready to prove it?
Pass the test and this pattern moves unknown
