Bird
Raised Fist0
MongoDBquery~5 mins

Compound index and field order in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a compound index in MongoDB?
A compound index is an index on multiple fields in a MongoDB document. It helps speed up queries that filter or sort by those fields together.
Click to reveal answer
intermediate
Why does the order of fields matter in a compound index?
The order matters because MongoDB uses the index from left to right. Queries must match the prefix of the index fields to use it efficiently.
Click to reveal answer
intermediate
Given a compound index on { age: 1, name: 1 }, which queries can use this index?
Queries filtering by age alone or by both age and name can use this index. Queries filtering only by name cannot use it efficiently.
Click to reveal answer
intermediate
How does MongoDB use a compound index for sorting?
MongoDB can use a compound index to sort results if the sort order matches the index field order and direction.
Click to reveal answer
advanced
What happens if you reverse the field order in a compound index?
Reversing the field order creates a different index. Queries optimized for the original order may not benefit from the reversed index.
Click to reveal answer
Which of these is a valid compound index in MongoDB?
A{ age }
B{ age: 'ascending', name: 'descending' }
C{ name: 1 }
D{ age: 1, name: 1 }
If you have a compound index on { age: 1, name: 1 }, which query uses the index efficiently?
A{ age: 25 }
B{ name: 'Alice' }
C{ name: 'Alice', age: 25 }
D{ city: 'NY' }
What is the effect of field order in a compound index?
AIt does not matter
BMongoDB uses fields from left to right for queries
COnly the last field is used
DFields are used randomly
Can a compound index be used to sort query results?
AYes, if the sort matches the index field order
BNo, indexes are only for filtering
COnly single-field indexes can sort
DSorting is done after fetching all results
What happens if you create a compound index with reversed field order?
AMongoDB merges both indexes
BIt creates the same index
CIt creates a different index
DIt causes an error
Explain what a compound index is and why the order of fields matters in MongoDB.
Think about how MongoDB uses indexes to speed up queries.
You got /4 concepts.
    Describe how MongoDB uses a compound index to optimize queries and sorting.
    Consider both filtering and sorting when using compound indexes.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does a compound index in MongoDB do?
      easy
      A. Speeds up queries that filter or sort on multiple fields together
      B. Stores data in multiple collections
      C. Automatically backs up the database
      D. Encrypts data for security

      Solution

      1. Step 1: Understand what an index is

        An index helps MongoDB find data faster by organizing it.
      2. Step 2: Understand compound index purpose

        A compound index uses more than one field to speed up queries that use those fields together.
      3. Final Answer:

        Speeds up queries that filter or sort on multiple fields together -> Option A
      4. Quick Check:

        Compound index = Speeds up multi-field queries [OK]
      Hint: Compound index = multiple fields speed up queries [OK]
      Common Mistakes:
      • Thinking it stores data in multiple collections
      • Confusing with backup or encryption features
      • Believing it only indexes one field
      2. Which is the correct way to create a compound index on fields age ascending and score descending in MongoDB?
      easy
      A. db.collection.createIndex({ age: 1, score: -1 })
      B. db.collection.createIndex({ age: -1, score: 1 })
      C. db.collection.createIndex(["age", "score"])
      D. db.collection.createIndex({ age: 'asc', score: 'desc' })

      Solution

      1. Step 1: Recall syntax for createIndex

        MongoDB uses an object with field names and 1 or -1 for ascending/descending.
      2. Step 2: Match field order and directions

        Age ascending is 1, score descending is -1, so { age: 1, score: -1 } is correct.
      3. Final Answer:

        db.collection.createIndex({ age: 1, score: -1 }) -> Option A
      4. Quick Check:

        Use 1/-1 for asc/desc in object [OK]
      Hint: Use {field: 1/-1} object for compound index [OK]
      Common Mistakes:
      • Using array instead of object for fields
      • Using strings like 'asc' or 'desc' instead of 1/-1
      • Mixing ascending and descending incorrectly
      3. Given a compound index on { city: 1, rating: -1 }, which query will use the index efficiently?
      medium
      A. db.collection.find({ rating: { $gt: 4 } })
      B. db.collection.find({ city: 'NYC' }).sort({ rating: 1 })
      C. db.collection.find({ city: 'NYC' }).sort({ rating: -1 })
      D. db.collection.find({ rating: -1, city: 'NYC' })

      Solution

      1. Step 1: Understand index field order and directions

        The index is on city ascending, then rating descending.
      2. Step 2: Check query filter and sort usage

        Query B filters on city (first field) and sorts rating descending (matching index direction).
      3. Final Answer:

        db.collection.find({ city: 'NYC' }).sort({ rating: -1 }) -> Option C
      4. Quick Check:

        Filter first field, sort second field matching index [OK]
      Hint: Filter first field, sort second field matching index order [OK]
      Common Mistakes:
      • Sorting rating ascending when index is descending
      • Filtering only on rating without city
      • Ignoring field order in index
      4. You created a compound index { a: 1, b: 1 } but your query { b: 5 } is slow. What is the likely issue?
      medium
      A. MongoDB does not support compound indexes
      B. The query does not filter on the first indexed field a
      C. The index fields are in wrong order; should be { b: 1, a: 1 }
      D. The index must use -1 for descending order

      Solution

      1. Step 1: Recall how compound indexes work

        Compound indexes work best when queries filter on the first field in the index.
      2. Step 2: Analyze query filter

        The query filters only on b, the second field, so index on a then b is not used efficiently.
      3. Final Answer:

        The query does not filter on the first indexed field a -> Option B
      4. Quick Check:

        Filter must include first index field [OK]
      Hint: Query must filter first indexed field to use compound index [OK]
      Common Mistakes:
      • Thinking MongoDB doesn't support compound indexes
      • Believing field order doesn't matter
      • Assuming descending order is always required
      5. You want to optimize queries filtering by category and sorting by price ascending. Which compound index is best?
      hard
      A. db.collection.createIndex({ price: -1, category: 1 })
      B. db.collection.createIndex({ price: 1, category: 1 })
      C. db.collection.createIndex({ category: -1, price: -1 })
      D. db.collection.createIndex({ category: 1, price: 1 })

      Solution

      1. Step 1: Identify query pattern

        Queries filter by category and sort by price ascending.
      2. Step 2: Choose index field order and direction

        Index should have category first (filter), then price ascending (sort) to match query.
      3. Final Answer:

        db.collection.createIndex({ category: 1, price: 1 }) -> Option D
      4. Quick Check:

        Filter field first, sort field second with matching order [OK]
      Hint: Filter field first, sort field second with matching order [OK]
      Common Mistakes:
      • Putting sort field before filter field in index
      • Using descending order when query sorts ascending
      • Ignoring field order importance
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard