Bird
Raised Fist0
MongoDBquery~10 mins

Why advanced indexing matters in MongoDB - Test Your Understanding

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

Complete the code to create a simple index on the 'name' field.

MongoDB
db.collection.createIndex({ name: [1] })
Drag options to blanks, or click blank then click option'
A1
B-1
Ctrue
Dfalse
Attempts:
3 left
💡 Hint
Common Mistakes
Using true or false instead of 1 or -1 causes errors.
Using -1 creates descending index, not ascending.
2fill in blank
medium

Complete the code to create a compound index on 'age' ascending and 'score' descending.

MongoDB
db.collection.createIndex({ age: [1], score: [2] })
Drag options to blanks, or click blank then click option'
Afalse
B-1
Ctrue
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using true or false instead of 1 or -1.
Reversing directions (e.g. -1 for age, 1 for score).
3fill in blank
hard

Fix the error in the index creation by completing the code correctly.

MongoDB
db.collection.createIndex({ [1]: 1 })
Drag options to blanks, or click blank then click option'
Aage
B1
Ctrue
Dname
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 or true as the field name key.
Leaving the field name blank.
4fill in blank
hard

Fill both blanks to create a text index on 'description' with unique: true.

MongoDB
db.collection.createIndex({ [1]: 'text' }, { [2]: true })
Drag options to blanks, or click blank then click option'
Adescription
Bunique
Cemail
Dsparse
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'email' as the text index field instead of 'description'.
Using 'sparse' instead of 'unique' for uniqueness.
5fill in blank
hard

Fill all three blanks to create a TTL index on 'createdAt' that expires documents after 3600 seconds.

MongoDB
db.collection.createIndex({ [1]: 1 }, { [2]: [3] })
Drag options to blanks, or click blank then click option'
AcreatedAt
BexpireAfterSeconds
C3600
Dunique
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'unique' instead of 'expireAfterSeconds'.
Using wrong field name or missing the expiration value.

Practice

(1/5)
1. Why is advanced indexing important in MongoDB?
easy
A. It encrypts data for security.
B. It slows down data retrieval to save memory.
C. It deletes duplicate data automatically.
D. It makes data searches faster and more efficient.

Solution

  1. Step 1: Understand the role of indexing

    Indexing helps MongoDB find data quickly without scanning the entire collection.
  2. Step 2: Recognize the benefit of advanced indexing

    Advanced indexing techniques improve search speed and efficiency beyond basic indexes.
  3. Final Answer:

    It makes data searches faster and more efficient. -> Option D
  4. Quick Check:

    Advanced indexing = faster searches [OK]
Hint: Indexing speeds up searches by organizing data smartly [OK]
Common Mistakes:
  • Thinking indexing slows down queries
  • Confusing indexing with data encryption
  • Assuming indexing deletes duplicates
2. Which of the following is the correct way to create a compound index on fields age and name in MongoDB?
easy
A. db.collection.createIndex({age: 1, name: 1})
B. db.collection.createIndex([age, name])
C. db.collection.createIndex('age', 'name')
D. db.collection.createIndex({age & name})

Solution

  1. Step 1: Recall MongoDB syntax for compound indexes

    Compound indexes use an object with field names as keys and sort order as values.
  2. Step 2: Match syntax to options

    db.collection.createIndex({age: 1, name: 1}) correctly uses an object with age: 1 and name: 1 to create ascending indexes.
  3. Final Answer:

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

    Compound index syntax = object with fields [OK]
Hint: Use object with fields and 1 or -1 for compound indexes [OK]
Common Mistakes:
  • Using array instead of object for fields
  • Passing field names as strings without keys
  • Using invalid syntax like '&' operator
3. Given a collection with a unique index on email, what happens if you try to insert two documents with the same email value?
medium
A. The second insert fails with a duplicate key error.
B. Both documents are inserted without error.
C. MongoDB automatically changes the second email to be unique.
D. The first document is deleted and replaced by the second.

Solution

  1. Step 1: Understand unique index behavior

    A unique index prevents duplicate values in the indexed field.
  2. Step 2: Predict insertion result

    Inserting a duplicate value causes MongoDB to reject the second insert with an error.
  3. Final Answer:

    The second insert fails with a duplicate key error. -> Option A
  4. Quick Check:

    Unique index blocks duplicates = error on second insert [OK]
Hint: Unique index stops duplicates, second insert errors [OK]
Common Mistakes:
  • Assuming MongoDB auto-fixes duplicates
  • Thinking both inserts succeed
  • Believing first document gets replaced
4. You created an index on username but your queries on username are still slow. What could be a possible reason?
medium
A. Indexes always slow down queries.
B. MongoDB does not support indexing on strings.
C. The index was created with the wrong field name.
D. You need to restart MongoDB to activate indexes.

Solution

  1. Step 1: Check index correctness

    If the index field name is wrong, queries won't use the index and remain slow.
  2. Step 2: Evaluate other options

    MongoDB supports string indexes, indexes speed up queries, and no restart is needed.
  3. Final Answer:

    The index was created with the wrong field name. -> Option C
  4. Quick Check:

    Wrong index field = no speedup [OK]
Hint: Verify index field matches query field exactly [OK]
Common Mistakes:
  • Believing MongoDB can't index strings
  • Thinking indexes slow queries
  • Restarting MongoDB unnecessarily
5. You have a collection with millions of documents. You want to speed up queries filtering by status and createdAt. Which indexing strategy is best?
hard
A. Create separate single-field indexes on status and createdAt.
B. Create a compound index on {status: 1, createdAt: -1}.
C. Create a unique index on status.
D. Do not create any index to save disk space.

Solution

  1. Step 1: Understand query filtering needs

    Queries filter by both status and createdAt, so a compound index helps.
  2. Step 2: Compare indexing options

    A compound index on both fields supports queries filtering on both efficiently, better than separate indexes.
  3. Step 3: Consider uniqueness and disk space

    Unique index on status is not suitable since status likely repeats; skipping indexes slows queries.
  4. Final Answer:

    Create a compound index on {status: 1, createdAt: -1}. -> Option B
  5. Quick Check:

    Compound index matches multi-field queries [OK]
Hint: Use compound index for multi-field query filters [OK]
Common Mistakes:
  • Using unique index on non-unique field
  • Relying on separate indexes for multi-field queries
  • Avoiding indexes to save space but hurting speed
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