Bird
Raised Fist0
MongoDBquery~30 mins

Why sharding is needed in MongoDB - See It in Action

Choose your learning style10 modes available
Why Sharding is Needed in MongoDB
📖 Scenario: You are managing a growing online store database using MongoDB. As the number of products and customers increases, the database starts to slow down and struggles to handle all the data efficiently.
🎯 Goal: Understand why sharding is needed by creating a simple MongoDB collection and simulating the setup for sharding to distribute data across multiple servers.
📋 What You'll Learn
Create a MongoDB collection called products with sample product documents
Define a shard key configuration variable
Write a command to enable sharding on the products collection using the shard key
Add the final command to verify sharding status
💡 Why This Matters
🌍 Real World
Sharding helps large databases handle more data and users by splitting data across multiple servers.
💼 Career
Understanding sharding is important for database administrators and backend developers managing scalable applications.
Progress0 / 4 steps
1
Create the products collection with sample data
Create a MongoDB collection called products and insert these exact documents: { _id: 1, name: "Laptop", category: "Electronics" }, { _id: 2, name: "Coffee Mug", category: "Kitchen" }, and { _id: 3, name: "Notebook", category: "Stationery" }.
MongoDB
Hint

Use db.products.insertMany() to add multiple documents at once.

2
Define the shard key configuration
Create a variable called shardKey and set it to the object { category: 1 } to use the category field as the shard key.
MongoDB
Hint

Use const shardKey = { category: 1 } to define the shard key object.

3
Enable sharding on the products collection
Use the MongoDB command sh.shardCollection to enable sharding on the products collection in the store database using the shardKey variable.
MongoDB
Hint

Use sh.shardCollection("store.products", shardKey) to enable sharding.

4
Check the sharding status
Add the command sh.status() to display the current sharding status of the MongoDB cluster.
MongoDB
Hint

Use sh.status() to see the sharding details.

Practice

(1/5)
1. Why is sharding needed in MongoDB?
easy
A. To split large data across multiple servers for better performance
B. To backup data automatically
C. To encrypt data for security
D. To create indexes on collections

Solution

  1. Step 1: Understand the purpose of sharding

    Sharding divides large datasets into smaller parts stored on different servers.
  2. Step 2: Identify the benefit of sharding

    This division helps the database handle more data and users efficiently.
  3. Final Answer:

    To split large data across multiple servers for better performance -> Option A
  4. Quick Check:

    Sharding = splitting data for speed [OK]
Hint: Sharding means splitting data to keep speed fast [OK]
Common Mistakes:
  • Confusing sharding with backup
  • Thinking sharding is for security
  • Mixing sharding with indexing
2. Which of the following is the correct way to enable sharding on a database named mydb in MongoDB shell?
easy
A. sh.enableSharding('mydb')
B. db.enableSharding('mydb')
C. sh.shardEnable('mydb')
D. enableSharding('mydb')

Solution

  1. Step 1: Recall the MongoDB shell command for enabling sharding

    The correct command uses the sh object with enableSharding() method.
  2. Step 2: Match the correct syntax

    Only sh.enableSharding('mydb') matches the official syntax.
  3. Final Answer:

    sh.enableSharding('mydb') -> Option A
  4. Quick Check:

    sh.enableSharding() is correct syntax [OK]
Hint: Use sh.enableSharding('dbName') to enable sharding [OK]
Common Mistakes:
  • Using db instead of sh
  • Wrong method name like shardEnable
  • Calling enableSharding without sh prefix
3. Consider a MongoDB cluster with sharding enabled. If a collection is not sharded, what happens when data grows very large?
medium
A. The data is automatically split across shards
B. All data stays on a single server, causing slow queries
C. MongoDB deletes old data to save space
D. The cluster crashes immediately

Solution

  1. Step 1: Understand sharding effect on collections

    Only sharded collections split data across servers; unsharded collections stay on one server.
  2. Step 2: Predict behavior when data grows large

    Large unsharded collections cause slow queries because one server handles all data.
  3. Final Answer:

    All data stays on a single server, causing slow queries -> Option B
  4. Quick Check:

    Unsharded = single server, slow queries [OK]
Hint: Unsharded data stays on one server, slowing queries [OK]
Common Mistakes:
  • Assuming data auto-splits without sharding
  • Thinking MongoDB deletes data automatically
  • Believing cluster crashes immediately
4. You tried to shard a collection but got an error: "shard key not found". What is the likely cause?
medium
A. Sharding is not enabled on the cluster
B. The collection is empty
C. You used the wrong database name
D. You did not create an index on the shard key field

Solution

  1. Step 1: Understand shard key requirements

    MongoDB requires an index on the shard key field before sharding a collection.
  2. Step 2: Identify cause of error

    The error "shard key not found" usually means the shard key field lacks an index.
  3. Final Answer:

    You did not create an index on the shard key field -> Option D
  4. Quick Check:

    Shard key needs index [OK]
Hint: Shard key must have an index before sharding [OK]
Common Mistakes:
  • Ignoring index creation on shard key
  • Assuming empty collection causes error
  • Confusing database name with shard key
5. A company has a MongoDB database with a collection growing rapidly. They want to keep queries fast and handle many users. Which approach best uses sharding to solve this?
hard
A. Do not shard and increase RAM on the single server
B. Shard the collection using a field with few unique values
C. Shard the collection using a field with high cardinality and evenly distributed values
D. Shard the collection randomly without a shard key

Solution

  1. Step 1: Identify good shard key characteristics

    A good shard key has many unique values (high cardinality) and distributes data evenly.
  2. Step 2: Evaluate options for sharding

    Using a field with few unique values causes unbalanced shards; random sharding is not possible without a shard key.
  3. Step 3: Consider scaling alternatives

    Increasing RAM alone won't handle very large data or many users efficiently.
  4. Final Answer:

    Shard the collection using a field with high cardinality and evenly distributed values -> Option C
  5. Quick Check:

    Good shard key = high cardinality, even distribution [OK]
Hint: Choose shard key with many unique, evenly spread values [OK]
Common Mistakes:
  • Picking shard key with few unique values
  • Trying to shard without a shard key
  • Relying only on hardware upgrades
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