Bird
Raised Fist0
MongoDBquery~5 mins

Write concern and data durability in MongoDB - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is write concern in MongoDB?
Write concern is a setting that tells MongoDB how sure it should be that a write operation has been saved before reporting success.
Click to reveal answer
beginner
What does w: 1 mean in MongoDB write concern?
It means the write operation must be acknowledged by the primary server only before reporting success.
Click to reveal answer
intermediate
How does w: 'majority' affect data durability?
It ensures the write is confirmed by the majority of replica set members, increasing data safety in case of failure.
Click to reveal answer
intermediate
What is the role of j: true in write concern?
It requires the write to be committed to the journal on disk, improving durability by protecting against power loss.
Click to reveal answer
advanced
Why might you choose a lower write concern like w: 0?
To improve performance by not waiting for any acknowledgment, but this risks losing data if the write fails.
Click to reveal answer
What does write concern control in MongoDB?
AHow many servers confirm a write before success
BThe speed of the query execution
CThe size of the database
DThe number of indexes
What does w: 'majority' ensure?
AWrite is confirmed by the primary only
BWrite is confirmed by most members in the replica set
CWrite is confirmed by all members
DWrite is not confirmed at all
What does setting j: true do?
ADisables journaling
BDeletes journal files
CSpeeds up writes by skipping disk
DRequires write to be saved to journal on disk
Which write concern gives no acknowledgment of write success?
Aw: 0
Bw: 1
Cw: majority
Dj: true
Why is a higher write concern better for data durability?
AIt deletes old data
BIt makes writes faster
CIt confirms writes on more servers, reducing data loss risk
DIt compresses data
Explain what write concern is and how it affects data durability in MongoDB.
Think about how many servers must say 'I saved it' before you trust the write.
You got /3 concepts.
    Describe the difference between w: 1, w: majority, and w: 0 write concerns.
    Consider how many confirmations each setting requires.
    You got /3 concepts.

      Practice

      (1/5)
      1. What does the writeConcern option in MongoDB control?
      easy
      A. How MongoDB confirms that data is saved to the database
      B. The format of data stored in MongoDB
      C. The speed of data retrieval from MongoDB
      D. The size limit of documents in MongoDB

      Solution

      1. Step 1: Understand the role of write concern

        Write concern tells MongoDB how to confirm that a write operation is saved and durable.
      2. Step 2: Differentiate from other options

        It does not control data format, retrieval speed, or document size.
      3. Final Answer:

        How MongoDB confirms that data is saved to the database -> Option A
      4. Quick Check:

        Write concern = data save confirmation [OK]
      Hint: Write concern = confirmation of data saved [OK]
      Common Mistakes:
      • Confusing write concern with data format
      • Thinking it controls read speed
      • Assuming it limits document size
      2. Which of the following is the correct way to specify a write concern that waits for acknowledgment from the primary in MongoDB?
      easy
      A. { writeConcern: { w: -1 } }
      B. { writeConcern: { w: 0 } }
      C. { writeConcern: { w: 'majority' } }
      D. { writeConcern: { w: 1 } }

      Solution

      1. Step 1: Recall write concern values

        w:1 means wait for acknowledgment from the primary node only.
      2. Step 2: Check other options

        w:0 means no acknowledgment; w:'majority' waits for majority nodes; w:-1 is invalid.
      3. Final Answer:

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

        w:1 = primary ack wait [OK]
      Hint: w:1 waits for primary acknowledgment [OK]
      Common Mistakes:
      • Using w:0 which means no acknowledgment
      • Confusing 'majority' with primary only
      • Using invalid negative values
      3. Consider this MongoDB insert command with write concern:
      db.collection.insertOne({name: 'Alice'}, {writeConcern: {w: 'majority', wtimeout: 5000}})

      What happens if the majority of nodes do not acknowledge the write within 5 seconds?
      medium
      A. The write operation succeeds immediately without waiting
      B. The write operation retries indefinitely until acknowledged
      C. The write operation fails with a timeout error
      D. The write operation ignores the write concern and writes anyway

      Solution

      1. Step 1: Understand w:'majority' and wtimeout

        The write waits for majority nodes to confirm within 5000 ms (5 seconds).
      2. Step 2: Outcome if timeout exceeded

        If majority nodes don't respond in time, MongoDB returns a timeout error and the write is considered failed.
      3. Final Answer:

        The write operation fails with a timeout error -> Option C
      4. Quick Check:

        w:'majority' + wtimeout = fail if no timely ack [OK]
      Hint: wtimeout limits wait; timeout causes failure [OK]
      Common Mistakes:
      • Assuming write succeeds immediately
      • Thinking MongoDB retries forever
      • Ignoring write concern on timeout
      4. You wrote this code to insert a document with write concern:
      db.collection.insertOne({item: 'book'}, {writeConcern: {w: 2, wtimeout: '3000'}})

      But it throws an error. What is the problem?
      medium
      A. wtimeout must be a number, not a string
      B. w:2 is invalid; only 0,1, or 'majority' allowed
      C. insertOne does not accept writeConcern option
      D. The document field 'item' is not allowed

      Solution

      1. Step 1: Check writeConcern syntax

        wtimeout expects a number (milliseconds), not a string.
      2. Step 2: Validate other parts

        w:2 is valid if the replica set has at least 2 nodes; insertOne accepts writeConcern; 'item' field is valid.
      3. Final Answer:

        wtimeout must be a number, not a string -> Option A
      4. Quick Check:

        wtimeout type must be number [OK]
      Hint: wtimeout needs number, not quotes [OK]
      Common Mistakes:
      • Using string for wtimeout
      • Thinking w:2 is invalid always
      • Assuming insertOne disallows writeConcern
      5. You want to ensure that a write is saved to disk on the primary and replicated to at least two secondary nodes before confirming success. Which write concern setting achieves this?
      hard
      A. { writeConcern: { w: 1, j: true } }
      B. { writeConcern: { w: 3, j: true } }
      C. { writeConcern: { w: 'majority', j: false } }
      D. { writeConcern: { w: 2, j: false } }

      Solution

      1. Step 1: Understand w and j options

        w:3 means wait for acknowledgment from primary plus two secondaries (total 3 nodes). j:true means wait for write to be committed to journal (disk) on primary.
      2. Step 2: Check other options

        B waits only for primary with journaling; C waits for majority but no journaling; D waits for 2 nodes but no journaling.
      3. Final Answer:

        { writeConcern: { w: 3, j: true } } -> Option B
      4. Quick Check:

        w:3 + j:true = 3 nodes + disk write [OK]
      Hint: w:number = nodes ack; j:true = disk commit [OK]
      Common Mistakes:
      • Ignoring journaling for durability
      • Using w:'majority' without knowing node count
      • Assuming w:2 means two secondaries only
      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