Bird
Raised Fist0
MongoDBquery~5 mins

How MongoDB indexes work (B-tree mental model) - Quick Revision & Summary

Choose your learning style10 modes available
Recall & Review
beginner
What is the main purpose of an index in MongoDB?
An index helps MongoDB find data quickly without scanning every document in a collection, similar to how a book's index helps you find a topic fast.
Click to reveal answer
intermediate
Describe the B-tree structure used in MongoDB indexes.
A B-tree is a balanced tree with nodes containing keys and pointers. It keeps data sorted and allows fast searches, inserts, and deletes by narrowing down where to look step-by-step.
Click to reveal answer
intermediate
How does MongoDB use B-tree indexes to speed up queries?
MongoDB uses the B-tree to quickly find the range or exact key by traversing from the root node down to the leaf nodes, avoiding scanning all documents.
Click to reveal answer
intermediate
What happens when you insert a new document in a collection with an index?
MongoDB updates the B-tree index by adding the new key in the correct position, keeping the tree balanced for fast future searches.
Click to reveal answer
advanced
Why is the B-tree called 'balanced' and why is that important?
The B-tree keeps all leaf nodes at the same depth, so every search takes about the same time. This balance ensures consistent and fast query performance.
Click to reveal answer
What does a MongoDB index primarily help with?
ASpeeding up data retrieval
BIncreasing storage space
CBacking up data
DEncrypting data
In a B-tree, what do the nodes contain?
AOnly data values
BKeys and pointers to child nodes
CUser passwords
DNetwork addresses
Why is the B-tree structure important for MongoDB indexes?
AIt balances the tree for fast searches
BIt compresses data
CIt encrypts data
DIt stores images
When a new document is added, how does MongoDB update the index?
ADeletes the old index
BRebuilds the entire index
CIgnores the index
DInserts the new key in the B-tree maintaining balance
What does it mean that a B-tree is 'balanced'?
AIt stores data in alphabetical order
BIt has equal numbers of keys and pointers
CAll leaf nodes are at the same depth
DIt uses equal memory for each node
Explain how MongoDB uses a B-tree index to find documents quickly.
Think about how a tree helps you narrow down where to look step-by-step.
You got /4 concepts.
    Describe why keeping the B-tree balanced is important for MongoDB index performance.
    Imagine a tree where every path to data is equally short.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of an index in MongoDB using a B-tree structure?
      easy
      A. To encrypt data for security
      B. To store data in a compressed format
      C. To speed up search and sort operations on data
      D. To backup the database automatically

      Solution

      1. Step 1: Understand what a B-tree index does

        A B-tree index organizes data so that searching and sorting can happen quickly.
      2. Step 2: Identify the main benefit of indexing

        Indexes help queries find data faster by avoiding full collection scans.
      3. Final Answer:

        To speed up search and sort operations on data -> Option C
      4. Quick Check:

        Index = Faster search and sort [OK]
      Hint: Indexes speed up queries by organizing data [OK]
      Common Mistakes:
      • Thinking indexes compress data
      • Confusing indexes with backups
      • Assuming indexes encrypt data
      2. Which of the following is the correct syntax to create an ascending index on the field age in MongoDB?
      easy
      A. db.collection.createIndex({age: 1})
      B. db.collection.createIndex(age: ascending)
      C. db.collection.index({age: 'asc'})
      D. db.collection.addIndex({age: 1})

      Solution

      1. Step 1: Recall MongoDB index creation syntax

        The correct method is createIndex with a document specifying field and order.
      2. Step 2: Check the correct format for ascending order

        Ascending order is represented by 1, so {age: 1} is correct.
      3. Final Answer:

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

        createIndex + {field: 1} = correct syntax [OK]
      Hint: Use createIndex({field: 1}) for ascending index [OK]
      Common Mistakes:
      • Using addIndex instead of createIndex
      • Passing string 'asc' instead of 1
      • Omitting curly braces around field
      3. Given a collection with an index on score, what will be the order of documents returned by this query?
      db.collection.find().sort({score: 1})
      medium
      A. Documents sorted by score in descending order
      B. Documents sorted by insertion order
      C. Documents in random order
      D. Documents sorted by score in ascending order

      Solution

      1. Step 1: Understand the sort parameter

        The sort({score: 1}) means sort by score ascending (lowest to highest).
      2. Step 2: Recognize index usage

        Since there is an index on score, MongoDB uses it to return documents in ascending order efficiently.
      3. Final Answer:

        Documents sorted by score in ascending order -> Option D
      4. Quick Check:

        sort({score: 1}) = ascending order [OK]
      Hint: sort({field: 1}) means ascending order [OK]
      Common Mistakes:
      • Confusing 1 with descending order
      • Assuming no order without explicit index
      • Thinking insertion order is default
      4. You created a unique index on the field email but still see duplicate emails in your collection. What is the likely cause?
      medium
      A. The index was created with ascending order instead of unique
      B. The unique index was created after duplicates existed
      C. MongoDB does not enforce uniqueness on indexes
      D. The field email is missing in some documents

      Solution

      1. Step 1: Understand unique index behavior

        Unique indexes prevent duplicates only for new inserts after index creation.
      2. Step 2: Consider existing duplicates

        If duplicates existed before creating the unique index, MongoDB allows them unless you drop or clean data first.
      3. Final Answer:

        The unique index was created after duplicates existed -> Option B
      4. Quick Check:

        Unique index blocks new duplicates, not old ones [OK]
      Hint: Unique index blocks new duplicates, not existing ones [OK]
      Common Mistakes:
      • Thinking ascending order affects uniqueness
      • Believing MongoDB ignores unique constraints
      • Assuming missing fields cause duplicates
      5. You want to optimize queries filtering by category and sorting by price. Which index is best to improve performance?
      hard
      A. A compound index on {category: 1, price: 1}
      B. Two separate indexes: one on category, one on price
      C. A unique index on price
      D. No index needed if collection is small

      Solution

      1. Step 1: Understand compound index benefits

        A compound index on {category: 1, price: 1} supports queries filtering by category and sorting by price efficiently.
      2. Step 2: Compare with separate indexes

        Separate indexes cannot optimize combined filter and sort as well as a compound index.
      3. Step 3: Consider uniqueness and collection size

        Unique index on price is irrelevant here; small collections may not need indexes but that is not optimization.
      4. Final Answer:

        A compound index on {category: 1, price: 1} -> Option A
      5. Quick Check:

        Compound index = best for filter + sort [OK]
      Hint: Use compound index for filter and sort fields together [OK]
      Common Mistakes:
      • Using separate indexes instead of compound
      • Confusing unique index with performance index
      • Ignoring index for small collections
      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