Bird
Raised Fist0
MongoDBquery~5 mins

Range-based sharding in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is range-based sharding in MongoDB?
Range-based sharding splits data into chunks based on a range of shard key values. Each shard holds documents within a specific range, like dividing a book by chapters.
Click to reveal answer
beginner
How does MongoDB decide which shard stores a document in range-based sharding?
MongoDB looks at the shard key value of the document and places it in the shard responsible for the range that includes that value.
Click to reveal answer
intermediate
What is a chunk in range-based sharding?
A chunk is a continuous range of shard key values. MongoDB moves chunks between shards to balance data and load.
Click to reveal answer
intermediate
Why might range-based sharding cause hotspots?
If many writes target a small range of shard key values, one shard gets overloaded, causing a hotspot and slowing performance.
Click to reveal answer
beginner
Name one advantage of range-based sharding.
It allows efficient range queries because related data is stored together on the same shard.
Click to reveal answer
In range-based sharding, how is data divided across shards?
ABy ranges of shard key values
BRandomly across shards
CBy hashing the shard key
DBy document size
What is a potential problem with range-based sharding?
AData is evenly distributed
BChunks cannot move between shards
CHotspots can form if many writes target one range
DIt does not support range queries
What is a chunk in MongoDB range-based sharding?
AA backup copy
BA single document
CA shard server
DA range of shard key values
Which query type benefits most from range-based sharding?
ARandom document lookups
BRange queries on shard key
CFull collection scans
DQueries without shard key
How does MongoDB balance data in range-based sharding?
ABy moving chunks between shards
BBy deleting old data
CBy copying data to all shards
DBy changing shard keys
Explain how range-based sharding works in MongoDB and why it might cause hotspots.
Think about how dividing data by ranges affects where data goes and how busy shards get.
You got /4 concepts.
    Describe one advantage and one disadvantage of using range-based sharding.
    Consider query speed and load distribution.
    You got /2 concepts.

      Practice

      (1/5)
      1. What is the main idea behind range-based sharding in MongoDB?
      easy
      A. Data is randomly distributed across shards.
      B. Data is split into ranges based on shard key values.
      C. Data is duplicated on all shards for backup.
      D. Data is stored only on a single shard.

      Solution

      1. Step 1: Understand range-based sharding concept

        Range-based sharding divides data into continuous ranges based on shard key values.
      2. Step 2: Compare with other options

        Random distribution or duplication are not characteristics of range-based sharding.
      3. Final Answer:

        Data is split into ranges based on shard key values. -> Option B
      4. Quick Check:

        Range-based sharding = Data split by ranges [OK]
      Hint: Remember: range-based means splitting by value ranges [OK]
      Common Mistakes:
      • Confusing range-based with hash-based sharding
      • Thinking data is duplicated on all shards
      • Assuming data is randomly distributed
      2. Which of the following is the correct way to enable range-based sharding on a collection in MongoDB?
      easy
      A. sh.shardRangeCollection("db.collection", { "field": 1 })
      B. sh.enableRangeSharding("db.collection")
      C. db.collection.shardRange({ "field": 1 })
      D. sh.shardCollection("db.collection", { "field": 1 })

      Solution

      1. Step 1: Recall MongoDB sharding command

        The correct command to shard a collection by a key is sh.shardCollection() with the shard key.
      2. Step 2: Verify syntax correctness

        sh.shardCollection("db.collection", { "field": 1 }) uses the correct syntax: sh.shardCollection("db.collection", { "field": 1 }). Other options are invalid commands.
      3. Final Answer:

        sh.shardCollection("db.collection", { "field": 1 }) -> Option D
      4. Quick Check:

        Use sh.shardCollection() to enable sharding [OK]
      Hint: Use sh.shardCollection() with shard key object [OK]
      Common Mistakes:
      • Using non-existent commands like sh.enableRangeSharding
      • Incorrect method names like shardRangeCollection
      • Passing wrong parameters or missing shard key
      3. Given a collection sharded by the field age with ranges: { age: { $lt: 20 } }, { age: { $gte: 20, $lt: 40 } }, and { age: { $gte: 40 } }, which shard will store a document with { age: 35 }?
      medium
      A. Shard with range { age: { $gte: 20, $lt: 40 } }
      B. Shard with range { age: { $lt: 20 } }
      C. Shard with range { age: { $gte: 40 } }
      D. Document will be stored on all shards

      Solution

      1. Step 1: Identify the correct range for age 35

        Age 35 fits in the range where age is greater or equal to 20 and less than 40.
      2. Step 2: Match the range to the shard

        The shard with range { age: { $gte: 20, $lt: 40 } } will store the document.
      3. Final Answer:

        Shard with range { age: { $gte: 20, $lt: 40 } } -> Option A
      4. Quick Check:

        35 is between 20 and 40, so goes to that shard [OK]
      Hint: Match value to shard range boundaries carefully [OK]
      Common Mistakes:
      • Choosing the shard with $lt: 20 incorrectly
      • Assuming document is stored on all shards
      • Confusing range boundaries (gte vs lt)
      4. You have a range-based sharded collection on score with ranges: { score: { $lt: 50 } } and { score: { $gte: 50 } }. You try to insert { score: "high" } but get an error. What is the likely cause?
      medium
      A. The shard key ranges overlap causing conflict.
      B. The shard key field is missing in the document.
      C. The shard key value type does not match the defined range type.
      D. MongoDB does not support string values in shard keys.

      Solution

      1. Step 1: Understand shard key type requirements

        Shard key values must match the type used in range definitions. Here, ranges expect numeric scores.
      2. Step 2: Identify the error cause

        Inserting a string "high" for a numeric shard key causes a type mismatch error.
      3. Final Answer:

        The shard key value type does not match the defined range type. -> Option C
      4. Quick Check:

        Shard key types must match range types [OK]
      Hint: Shard key values must match range data types [OK]
      Common Mistakes:
      • Assuming missing shard key field causes this error
      • Thinking overlapping ranges cause insert errors
      • Believing MongoDB disallows strings in shard keys
      5. You want to shard a large user collection by signupDate using range-based sharding. Which shard key choice will best support queries filtering users by recent signup dates?
      hard
      A. Use { signupDate: 1 } as shard key to split by date ranges.
      B. Use { userId: 1 } as shard key for even data distribution.
      C. Use { signupDate: "hashed" } to hash dates for randomness.
      D. Use { lastLogin: 1 } as shard key for login-based queries.

      Solution

      1. Step 1: Identify query pattern

        Queries filter users by recent signup dates, so shard key should support range queries on signupDate.
      2. Step 2: Choose shard key matching query pattern

        Using { signupDate: 1 } enables range-based sharding by date, optimizing these queries.
      3. Step 3: Evaluate other options

        Hashing or using unrelated fields won't support efficient range queries on signupDate.
      4. Final Answer:

        Use { signupDate: 1 } as shard key to split by date ranges. -> Option A
      5. Quick Check:

        Shard key matches query field for best performance [OK]
      Hint: Match shard key to common query field for range queries [OK]
      Common Mistakes:
      • Choosing hashed shard key when range queries are needed
      • Picking unrelated fields like userId or lastLogin
      • Ignoring query patterns when selecting shard key
      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