Bird
Raised Fist0
MongoDBquery~10 mins

Write concern basics in MongoDB - Interactive Code Practice

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to set the write concern to acknowledge writes on the primary only.

MongoDB
db.collection.insertOne({name: "Alice"}, {writeConcern: {w: [1])
Drag options to blanks, or click blank then click option'
A0
Bmajority
C1
Dall
Attempts:
3 left
💡 Hint
Common Mistakes
Using 'majority' when only primary acknowledgment is needed.
Using 0 which means no acknowledgment.
2fill in blank
medium

Complete the code to set the write concern to require acknowledgment from the majority of replica set members.

MongoDB
db.collection.insertOne({name: "Bob"}, {writeConcern: {w: [1])
Drag options to blanks, or click blank then click option'
Aall
B1
C0
Dmajority
Attempts:
3 left
💡 Hint
Common Mistakes
Using 1 instead of 'majority' for stronger write guarantees.
Using 0 which means no acknowledgment.
3fill in blank
hard

Fix the error in the write concern option to wait for acknowledgment from two nodes.

MongoDB
db.collection.insertOne({name: "Carol"}, {writeConcern: {w: [1])
Drag options to blanks, or click blank then click option'
Amajority
B2
C"two"
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using a string like 'two' instead of the number 2.
Using 'majority' when a specific number is required.
4fill in blank
hard

Fill both blanks to set write concern to wait for majority acknowledgment and a timeout of 5000 milliseconds.

MongoDB
db.collection.insertOne({name: "Dave"}, {writeConcern: {w: [1], wtimeout: [2])
Drag options to blanks, or click blank then click option'
Amajority
B5000
C1000
D1
Attempts:
3 left
💡 Hint
Common Mistakes
Using a timeout value too low or too high.
Using numeric w instead of 'majority' for majority acknowledgment.
5fill in blank
hard

Fill all three blanks to set write concern to wait for 3 nodes, enable journaling, and set a timeout of 2000 milliseconds.

MongoDB
db.collection.insertOne({name: "Eve"}, {writeConcern: {w: [1], j: [2], wtimeout: [3])
Drag options to blanks, or click blank then click option'
Atrue
B2000
C3
Dfalse
Attempts:
3 left
💡 Hint
Common Mistakes
Using string 'true' instead of boolean true.
Setting wtimeout too high or too low.

Practice

(1/5)
1.

What does write concern in MongoDB control?

easy
A. The size of the database files
B. The speed of reading data from the database
C. The number of users connected to the database
D. How sure MongoDB is that your data is saved

Solution

  1. Step 1: Understand the role of write concern

    Write concern defines the level of acknowledgment requested from MongoDB when writing data.
  2. Step 2: Identify what write concern controls

    It controls how sure the database is that the data has been saved successfully.
  3. Final Answer:

    How sure MongoDB is that your data is saved -> Option D
  4. Quick Check:

    Write concern = Data save confirmation [OK]
Hint: Write concern = data save confirmation level [OK]
Common Mistakes:
  • Confusing write concern with read speed
  • Thinking it controls database size
  • Assuming it manages user connections
2.

Which of the following is the correct way to set a write concern of w: 1 in a MongoDB insert operation?

db.collection.insertOne({name: 'Alice'}, {writeConcern: ???})
easy
A. {w: 1}
B. {w: 'majority'}
C. {w: 0}
D. {w: true}

Solution

  1. Step 1: Recall write concern syntax

    Write concern is set as an object with key w and a value indicating the level.
  2. Step 2: Match the correct value for w: 1

    The correct syntax is {w: 1} to wait for acknowledgment from one server.
  3. Final Answer:

    {w: 1} -> Option A
  4. Quick Check:

    Write concern syntax = {w: 1} [OK]
Hint: Use {w: 1} to wait for one server acknowledgment [OK]
Common Mistakes:
  • Using string 'true' instead of number 1
  • Confusing 'majority' with numeric 1
  • Setting w to 0 which means no acknowledgment
3.

What will happen if you run this MongoDB command?

db.orders.insertOne({item: 'book'}, {writeConcern: {w: 0}})
medium
A. The insert does not wait for any confirmation
B. The insert waits for confirmation from the server
C. The insert waits for confirmation from majority of servers
D. The insert throws a syntax error

Solution

  1. Step 1: Understand writeConcern w: 0 meaning

    Setting w: 0 means no acknowledgment is required from the server.
  2. Step 2: Predict behavior of insertOne with w: 0

    The insert operation will send data but not wait for any confirmation, so it returns immediately.
  3. Final Answer:

    The insert does not wait for any confirmation -> Option A
  4. Quick Check:

    w: 0 means no wait for confirmation [OK]
Hint: w: 0 means fire-and-forget, no wait [OK]
Common Mistakes:
  • Thinking w: 0 waits for server confirmation
  • Assuming syntax error due to w: 0
  • Confusing w: 0 with majority write concern
4.

Identify the error in this MongoDB write concern usage:

db.users.insertOne({name: 'Bob'}, {writeConcern: {w: 'two'}})
medium
A. The write concern should be set as a string without quotes
B. The value 'two' is invalid for write concern w
C. The insertOne method does not accept write concern
D. The document format is incorrect

Solution

  1. Step 1: Check valid values for write concern w

    Write concern w accepts numbers or 'majority', not arbitrary strings like 'two'.
  2. Step 2: Identify the error in the given code

    Using 'two' is invalid and will cause an error.
  3. Final Answer:

    The value 'two' is invalid for write concern w -> Option B
  4. Quick Check:

    Write concern w must be number or 'majority' [OK]
Hint: Write concern w must be number or 'majority' only [OK]
Common Mistakes:
  • Using invalid string values for w
  • Thinking writeConcern is not allowed in insertOne
  • Confusing quotes usage in write concern
5.

You want to ensure your MongoDB write operation waits for confirmation from the majority of replica set members but also times out if it takes more than 5 seconds. Which write concern option should you use?

hard
A. {w: 0, wtimeout: 5000}
B. {w: 1, wtimeout: 5000}
C. {w: 'majority', wtimeout: 5000}
D. {w: 'majority', wtimeout: 0}

Solution

  1. Step 1: Understand write concern for majority

    To wait for majority confirmation, w must be set to 'majority'.
  2. Step 2: Add timeout for waiting

    Use wtimeout to specify max wait time in milliseconds; 5000 means 5 seconds.
  3. Step 3: Combine options correctly

    The correct option is {w: 'majority', wtimeout: 5000} to wait for majority with 5 seconds timeout.
  4. Final Answer:

    {w: 'majority', wtimeout: 5000} -> Option C
  5. Quick Check:

    Majority + 5s timeout = {w: 'majority', wtimeout: 5000} [OK]
Hint: Use w: 'majority' with wtimeout in ms for timeout [OK]
Common Mistakes:
  • Using w: 1 instead of 'majority' for majority confirmation
  • Setting wtimeout to 0 which means no timeout
  • Using w: 0 which disables waiting