Bird
Raised Fist0
MongoDBquery~10 mins

Sparse indexes 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 sparse index on the field "email".

MongoDB
db.users.createIndex({ email: 1 }, { [1]: true })
Drag options to blanks, or click blank then click option'
Asparse
Bbackground
Cunique
DexpireAfterSeconds
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'unique' instead of 'sparse' causes errors if duplicates exist.
Omitting the sparse option creates a normal index including all documents.
2fill in blank
medium

Complete the code to find documents where the "phone" field exists using the sparse index.

MongoDB
db.contacts.find({ [1]: { $exists: true } })
Drag options to blanks, or click blank then click option'
Aphone
Bemail
Caddress
Dname
Attempts:
3 left
💡 Hint
Common Mistakes
Querying on a different field than the sparse index.
Using $exists: false instead of true.
3fill in blank
hard

Fix the error in the code to create a sparse index on "username".

MongoDB
db.accounts.createIndex({ username: 1 }, { [1]: true })
Drag options to blanks, or click blank then click option'
Aunique
BexpireAfterSeconds
Cbackground
Dsparse
Attempts:
3 left
💡 Hint
Common Mistakes
Using string 'true' instead of boolean true.
Using an unrelated option name.
4fill in blank
hard

Fill both blanks to create an index on "profile.age" and make it run in the background.

MongoDB
db.users.createIndex({ [1]: 1 }, { [2]: true })
Drag options to blanks, or click blank then click option'
Aprofile.age
Bsparse
Cbackground
Dunique
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'sparse' instead of 'background' for the second option.
Using 'unique' which is unrelated here.
5fill in blank
hard

Fill all three blanks to create a sparse, unique index on "email" with background creation.

MongoDB
db.customers.createIndex({ [1]: 1 }, { [2]: true, [3]: true, [4]: true })
Drag options to blanks, or click blank then click option'
Aemail
Bunique
Csparse
Dbackground
Attempts:
3 left
💡 Hint
Common Mistakes
Confusing sparse and unique options.
Omitting background option.

Practice

(1/5)
1. What is the main purpose of a sparse index in MongoDB?
easy
A. To index only documents that contain the indexed field
B. To index all documents regardless of field presence
C. To create a backup of the database
D. To speed up writes by disabling indexing

Solution

  1. Step 1: Understand sparse index behavior

    Sparse indexes only include documents that have the indexed field present.
  2. Step 2: Compare with other index types

    Unlike regular indexes, sparse indexes skip documents missing the field, saving space and improving query speed on sparse data.
  3. Final Answer:

    To index only documents that contain the indexed field -> Option A
  4. Quick Check:

    Sparse index = indexes only documents with the field [OK]
Hint: Sparse indexes skip documents missing the field [OK]
Common Mistakes:
  • Thinking sparse indexes index all documents
  • Confusing sparse indexes with backups
  • Assuming sparse indexes disable indexing
2. Which of the following is the correct way to create a sparse index on the field email in MongoDB?
easy
A. db.collection.createIndex({ email: 1 }, { unique: true })
B. db.collection.createIndex({ email: 1 }, { background: true })
C. db.collection.createIndex({ email: 1 }, { sparse: true })
D. db.collection.createIndex({ email: 1 }, { expireAfterSeconds: 3600 })

Solution

  1. Step 1: Identify sparse index syntax

    The option { sparse: true } is used to create a sparse index in MongoDB.
  2. Step 2: Verify the correct command

    The command db.collection.createIndex({ email: 1 }, { sparse: true }) correctly creates a sparse index on the email field.
  3. Final Answer:

    db.collection.createIndex({ email: 1 }, { sparse: true }) -> Option C
  4. Quick Check:

    Sparse index creation uses { sparse: true } [OK]
Hint: Use { sparse: true } option to create sparse indexes [OK]
Common Mistakes:
  • Using unique instead of sparse option
  • Confusing background with sparse
  • Using expireAfterSeconds for sparse index
3. Given a collection with documents:
{ _id: 1, name: "Alice", age: 30 }
{ _id: 2, name: "Bob" }
{ _id: 3, name: "Charlie", age: 25 }

and a sparse index on age, what documents will be returned by db.collection.find({ age: { $gte: 25 } })?
medium
A. Documents with _id 1 and 3 only
B. Documents with _id 1, 2, and 3
C. Documents with _id 2 only
D. No documents returned

Solution

  1. Step 1: Understand sparse index effect on query

    The sparse index on age only indexes documents that have the age field. Document with _id 2 has no age field, so it is not indexed.
  2. Step 2: Evaluate the query filter

    The query { age: { $gte: 25 } } matches documents where age is 25 or more. Documents with _id 1 (age 30) and _id 3 (age 25) match. Document _id 2 is excluded because it has no age field.
  3. Final Answer:

    Documents with _id 1 and 3 only -> Option A
  4. Quick Check:

    Sparse index excludes docs missing field, so only _id 1 and 3 match [OK]
Hint: Sparse index excludes docs missing field, so only those with field match [OK]
Common Mistakes:
  • Including documents without the indexed field
  • Assuming all documents are returned
  • Confusing sparse index with regular index
4. You created a sparse index on phone field but your queries on phone are slow. What is a likely cause?
medium
A. Sparse indexes index all documents regardless of field presence
B. Sparse indexes always slow down queries
C. You forgot to create the index
D. Many documents do not have the phone field, so index is small and not used

Solution

  1. Step 1: Analyze sparse index behavior

    Sparse indexes only index documents with the field. If many documents lack the phone field, the index is small.
  2. Step 2: Understand query performance impact

    If the index is small or not selective, MongoDB may choose not to use it, causing slower queries.
  3. Final Answer:

    Many documents do not have the phone field, so index is small and not used -> Option D
  4. Quick Check:

    Sparse index small if field missing in many docs, may not speed queries [OK]
Hint: Sparse index small if many docs lack field, may not improve speed [OK]
Common Mistakes:
  • Assuming sparse indexes always slow queries
  • Forgetting to create the index
  • Thinking sparse indexes index all documents
5. You want to create an index on the status field, but only for documents where status exists and is not null. Which MongoDB index type should you use and why?
hard
A. TTL index, because it removes documents after a time
B. Sparse index, because it indexes only documents with the field present
C. Regular index, because it indexes all documents regardless of field
D. Unique index, because it enforces unique values

Solution

  1. Step 1: Identify index requirement

    You want to index only documents where status exists and is not null, skipping documents without status.
  2. Step 2: Match index type to requirement

    Sparse indexes index only documents that have the indexed field, which fits the requirement perfectly.
  3. Final Answer:

    Sparse index, because it indexes only documents with the field present -> Option B
  4. Quick Check:

    Use sparse index to index only docs with the field [OK]
Hint: Use sparse index to index only documents with the field present [OK]
Common Mistakes:
  • Choosing regular index which indexes all documents
  • Confusing TTL or unique indexes with sparse
  • Not understanding sparse index skips missing fields
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