Bird
Raised Fist0
MongoDBquery~10 mins

Compound index and field order in MongoDB - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to create a compound index on fields 'name' and 'age'.

MongoDB
db.users.createIndex({ name: 1, [1]: 1 })
Drag options to blanks, or click blank then click option'
Aage
Bemail
Caddress
Dphone
Attempts:
3 left
💡 Hint
Common Mistakes
Using a field not intended for the index like 'email'.
Forgetting to specify the field name.
2fill in blank
medium

Complete the code to find documents where 'name' is 'Alice' and 'age' is 30 using the compound index.

MongoDB
db.users.find({ name: 'Alice', [1]: 30 })
Drag options to blanks, or click blank then click option'
Aphone
Baddress
Cemail
Dage
Attempts:
3 left
💡 Hint
Common Mistakes
Using a field not in the index for filtering.
Misspelling the field name.
3fill in blank
hard

Fix the error in the compound index creation by choosing the correct field order.

MongoDB
db.users.createIndex({ [1]: 1, name: 1 })
Drag options to blanks, or click blank then click option'
Aaddress
Bemail
Cage
Dphone
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping field order incorrectly.
Using fields not intended for the index.
4fill in blank
hard

Fill both blanks to create a compound index on 'city' ascending and 'score' descending.

MongoDB
db.players.createIndex({ [1]: 1, [2]: -1 })
Drag options to blanks, or click blank then click option'
Acity
Bscore
Cage
Dname
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up field names.
Using wrong sort order values.
5fill in blank
hard

Fill all three blanks to create a compound index on 'category' ascending, 'price' ascending, and 'rating' descending.

MongoDB
db.products.createIndex({ [1]: 1, [2]: 1, [3]: -1 })
Drag options to blanks, or click blank then click option'
Acategory
Bprice
Crating
Dstock
Attempts:
3 left
💡 Hint
Common Mistakes
Incorrect field order.
Wrong sort directions.

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