Indexes help find data faster, but sometimes they slow things down or use too much space. Knowing when not to add an index saves resources and keeps your database fast.
When not to index in MongoDB
No specific syntax because this is about deciding NOT to create an index.Indexes are created with db.collection.createIndex() in MongoDB.
Choosing not to index is a decision based on data and query patterns.
db.collection.createIndex({status: 1}) to save space and write speed.// No index created on 'status' because it has few unique values // and queries on it are rare.
// No index on 'description' field because collection is small // and full collection scans are fast.
This example shows a situation where you choose not to create an index on a rarely used field in a small collection.
use shopDB // Suppose 'orders' collection is small and 'notes' field is rarely queried // We decide NOT to create an index on 'notes' // So no createIndex command is run here // To check existing indexes: db.orders.getIndexes()
Too many indexes slow down data writes because each index must be updated.
Indexes use extra disk space, so avoid indexing fields with low uniqueness.
Always monitor query performance and adjust indexes as your data grows.
Indexes speed up queries but can slow down writes and use space.
Don't index small collections or fields rarely used in queries.
Skip indexing fields with many repeated values to save resources.
Practice
Solution
Step 1: Understand index impact on small collections
Indexes add overhead and use space, so on very small collections, queries are already fast without them.Step 2: Compare with other options
The other options describe good reasons to create indexes: frequent filtering, large collections, and fields with many unique values used in sorting.Final Answer:
The collection is very small and queries are fast without indexes. -> Option AQuick Check:
Small collections often don't need indexes [OK]
- Thinking all collections always need indexes
- Ignoring index overhead on small data
- Confusing frequent query fields with rare ones
email field of the users collection?Solution
Step 1: Recall MongoDB index creation syntax
The correct method iscreateIndexwith a document specifying field and order (1 for ascending).Step 2: Check each option
db.users.createIndex({email: 1})matches the correct syntax. The distractors use wrong method names or formats:create_index(email)(incorrect casing, underscore, and argument style),index({email: 'asc'})(non-existent method),addIndex('email')(wrong method).Final Answer:
db.users.createIndex({email: 1}) -> Option BQuick Check:
Use createIndex({field: 1}) syntax [OK]
- Using wrong method names like create_index
- Passing field name as string instead of object
- Confusing ascending with string 'asc'
logs with a field status that has only two values: 'success' or 'fail', what is the likely effect of creating an index on status?Solution
Step 1: Understand low cardinality fields and indexing
Fields with few distinct values (low cardinality) like 'success'/'fail' do not benefit much from indexes because many documents share the same value.Step 2: Analyze options
Claims of much faster queries overestimate benefits for low cardinality. No errors occur from low cardinality indexes. Automatic data compression does not happen. The index uses extra space with no significant speedup.Final Answer:
The index will use extra space but provide no significant speedup. -> Option AQuick Check:
Low cardinality fields rarely benefit from indexes [OK]
- Assuming all indexes speed up queries
- Believing low cardinality causes errors
- Thinking indexes compress data automatically
category field of a MongoDB collection, but queries filtering by category are still slow. What is a likely cause?Solution
Step 1: Consider index usefulness on low distinct values
Ifcategoryhas few unique values, the index won't help much because many documents share the same value.Step 2: Evaluate other options
Wrong field name syntax is unlikely if the index exists; MongoDB supports indexing on string fields; empty collections have no data to slow down queries.Final Answer:
The category field has very few distinct values causing low index efficiency. -> Option CQuick Check:
Low distinct values reduce index speedup [OK]
- Assuming all indexes always speed queries
- Believing MongoDB can't index strings
- Thinking empty collections cause index failure
orders with 100 documents. The status field has values 'pending', 'shipped', 'delivered'. You want to optimize queries filtering by status. What is the best indexing strategy?Solution
Step 1: Analyze collection size and field cardinality
The collection is very small (100 documents), andstatushas only three distinct values, so indexing will add overhead without much benefit.Step 2: Evaluate indexing options
Create a single-field index onstatusto speed up queries. creates an index but likely unnecessary here. Create a compound index onstatusandorderDateeven iforderDateis rarely queried. adds complexity with rarely used field. Create multiple indexes on each possiblestatusvalue separately. is invalid as MongoDB does not create separate indexes per value.Final Answer:
Do not create an index because the collection is small and status has few distinct values. -> Option DQuick Check:
Small collections and low cardinality fields often don't need indexes [OK]
- Creating unnecessary indexes on small data
- Misunderstanding compound index benefits
- Trying to index each value separately
Ready to prove it?
Pass the test and this pattern moves unknown
