A shard key is a field or set of fields that determines how data is distributed across different shards in a MongoDB cluster. It helps split the data into chunks for efficient storage and retrieval.
Click to reveal answer
beginner
Why is choosing the right shard key important?
Choosing the right shard key is important because it affects how evenly data and workload are distributed across shards. A good shard key improves performance and scalability, while a bad one can cause bottlenecks and uneven load.
Click to reveal answer
intermediate
What happens if the shard key causes data to be unevenly distributed?
If the shard key causes uneven data distribution, some shards get overloaded while others stay underused. This leads to slower queries and can reduce the cluster's overall efficiency.
Click to reveal answer
intermediate
How does a shard key affect query performance?
A shard key that matches query patterns allows MongoDB to target specific shards, making queries faster. If the shard key is not used in queries, MongoDB must search all shards, slowing down performance.
Click to reveal answer
advanced
Can the shard key be changed after sharding a collection?
No, MongoDB does not allow changing the shard key after sharding a collection. To change it, you must create a new sharded collection with the desired shard key and migrate data.
Click to reveal answer
What is the main role of a shard key in MongoDB?
ATo create indexes on all fields
BTo encrypt data in the database
CTo backup data automatically
DTo split data across shards evenly
✗ Incorrect
The shard key determines how data is divided across shards to balance storage and workload.
What is a consequence of choosing a poor shard key?
AQueries run faster
BSome shards become overloaded
CData is evenly distributed
DShard key can be changed easily
✗ Incorrect
A poor shard key can cause uneven data distribution, overloading some shards.
Which query pattern benefits most from a good shard key?
AQueries that use the shard key fields
BQueries that scan all shards
CQueries that do not use the shard key
DQueries that only update indexes
✗ Incorrect
Queries using the shard key can target specific shards, improving speed.
Can you change the shard key of a collection after sharding it?
ANo, you must create a new collection
BYes, anytime easily
CYes, but only with admin rights
DOnly if the collection is empty
✗ Incorrect
MongoDB does not allow changing the shard key; you must create a new sharded collection.
Which of these is a good characteristic of a shard key?
AHas low cardinality (few unique values)
BIs never used in queries
CHas high cardinality (many unique values)
DIs a large text field
✗ Incorrect
A shard key with many unique values helps distribute data evenly.
Explain why selecting the right shard key is crucial for MongoDB performance and scalability.
Think about how data and queries spread across servers.
You got /4 concepts.
Describe what happens if a shard key causes uneven data distribution and how it affects the cluster.
Imagine some servers working too hard while others are idle.
You got /4 concepts.
Practice
(1/5)
1. Why is choosing a good shard key important in MongoDB?
easy
A. It reduces the number of collections.
B. It increases the size of each document.
C. It helps distribute data evenly across servers.
D. It makes the database schema simpler.
Solution
Step 1: Understand shard key role
The shard key determines how data is split across multiple servers in a cluster.
Step 2: Importance of even distribution
A good shard key ensures data is balanced, preventing some servers from being overloaded.
Final Answer:
It helps distribute data evenly across servers. -> Option C
Quick Check:
Shard key = data distribution [OK]
Hint: Shard key controls data spread, pick for balance [OK]
Common Mistakes:
Thinking shard key changes document size
Confusing shard key with schema design
Believing shard key reduces collections
2. Which of the following is the correct syntax to create a sharded collection with shard key { userId: 1 } in MongoDB?
easy
A. sh.shardCollection('mydb.users', { userId: 1 })
B. sh.shardCollection('mydb.users', 'userId')
C. sh.shardCollection('mydb.users', { userId: 'asc' })
D. sh.shardCollection('mydb.users', ['userId'])
Solution
Step 1: Review shardCollection syntax
The correct syntax requires the namespace string and a document specifying the shard key fields with direction (1 or -1).
Step 2: Match correct option
sh.shardCollection('mydb.users', { userId: 1 }) uses the correct format: database.collection and shard key as document with 1.
Final Answer:
sh.shardCollection('mydb.users', { userId: 1 }) -> Option A
Quick Check:
shardCollection needs {field: 1} format [OK]
Hint: Shard key must be a document with field and 1 or -1 [OK]
Common Mistakes:
Passing shard key as string instead of document
Using array instead of document for shard key
Using 'asc' instead of 1 for direction
3. Given a collection sharded on { orderId: 1 }, which query will benefit most from the shard key?
medium
A. db.orders.find({ customerName: 'Alice' })
B. db.orders.find({ total: { $gt: 100 } })
C. db.orders.find({ status: 'shipped' })
D. db.orders.find({ orderId: 12345 })
Solution
Step 1: Understand shard key query targeting
Queries that include the shard key field can be routed directly to the relevant shard.
Step 2: Identify query with shard key
Only the query filtering by orderId uses the shard key, so it benefits most.
Final Answer:
db.orders.find({ orderId: 12345 }) -> Option D
Quick Check:
Query with shard key = targeted query [OK]
Hint: Queries with shard key filter hit one shard fast [OK]
Common Mistakes:
Assuming any query benefits from shard key
Confusing shard key with indexed fields
Ignoring shard key presence in query
4. You created a shard key on { country: 1 } but notice one shard stores 90% of data. What is the likely problem?
medium
A. The shard key syntax was incorrect.
B. The shard key has low cardinality causing data imbalance.
C. The collection is not sharded properly.
D. The shard key field is missing in documents.
Solution
Step 1: Analyze shard key cardinality
Shard keys with few unique values (low cardinality) cause uneven data distribution.
Step 2: Identify cause of imbalance
Country likely has few distinct values, so one shard holds most data.
Final Answer:
The shard key has low cardinality causing data imbalance. -> Option B
Quick Check:
Low cardinality shard key = data imbalance [OK]
Hint: Low unique shard keys cause uneven data spread [OK]
Common Mistakes:
Blaming syntax without checking data
Assuming collection is unsharded
Ignoring shard key field presence
5. You want to shard a large user collection. Which shard key choice is best to keep data balanced and queries efficient?
hard
A. Use { userId: 1 } because it has many unique values and is in queries.
B. Use { country: 1 } because it groups users by location.
C. Use { signupDate: 1 } because dates are sequential.
D. Use { status: 1 } because it has few distinct values.
Solution
Step 1: Evaluate shard key uniqueness
A good shard key has many unique values to distribute data evenly.
Step 2: Match shard key to query patterns
UserId is unique and commonly used in queries, improving efficiency.
Step 3: Avoid low cardinality keys
Country and status have few distinct values, causing imbalance; signupDate is sequential, causing chunk hotspots.
Final Answer:
Use { userId: 1 } because it has many unique values and is in queries. -> Option A
Quick Check:
High cardinality + query use = best shard key [OK]
Hint: Pick shard key with many unique values and query use [OK]
Common Mistakes:
Choosing sequential or low cardinality fields
Ignoring query patterns when selecting shard key
Assuming grouping fields balance data well
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.