Bird
Raised Fist0
MongoDBquery~20 mins

Oplog and replication mechanism in MongoDB - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Oplog Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
2:00remaining
What is the primary role of the oplog in MongoDB replication?

In MongoDB, the oplog is a special collection used in replication. What is its main purpose?

AIt stores a log of all write operations to replicate them to secondary nodes.
BIt manages network connections between replica set members.
CIt holds backup snapshots of the database for recovery.
DIt stores user authentication data for replica set members.
Attempts:
2 left
💡 Hint

Think about how changes are shared between primary and secondary nodes.

❓ query_result
intermediate
2:00remaining
What does this oplog query return?

Consider this MongoDB query on the oplog collection:

db.oplog.rs.find({op: 'i'}).count()

What does this query return?

AThe number of update operations recorded in the oplog.
BThe number of insert operations recorded in the oplog.
CThe total number of operations in the oplog.
DThe number of delete operations recorded in the oplog.
Attempts:
2 left
💡 Hint

Look at the filter {op: 'i'} and what 'i' stands for in oplog entries.

📝 Syntax
advanced
2:00remaining
Identify the syntax error in this oplog query

Which option contains a syntax error when querying the oplog for update operations?

db.oplog.rs.find({op: 'u'})
Adb.oplog.rs.find({op: 'u'})
B)}'u' :po{(dnif.sr.golpo.bd
Cdb.oplog.rs.find({op = 'u'})
Db.oplog.rs.find({op: 'u'})
Attempts:
2 left
💡 Hint

Check the syntax for specifying query filters in MongoDB.

❓ optimization
advanced
2:00remaining
How to optimize oplog size for a busy replica set?

You have a busy MongoDB replica set and want to optimize the oplog size to avoid losing operations during replication lag. Which approach is best?

ASet the oplog size to zero to use unlimited space.
BDecrease the oplog size to save disk space.
CDisable the oplog to improve write speed.
DIncrease the oplog size to hold more operations before overwriting.
Attempts:
2 left
💡 Hint

Think about how oplog size affects replication lag tolerance.

🔧 Debug
expert
3:00remaining
Why does this secondary node fail to replicate oplog entries?

A secondary node in a MongoDB replica set is not applying oplog entries and shows this error: Rollback due to missing oplog entries. What is the most likely cause?

AThe secondary's oplog window is too small and missed some operations.
BThe primary node is offline and not generating oplog entries.
CThe secondary has a network firewall blocking all traffic.
DThe secondary's oplog collection is corrupted and unreadable.
Attempts:
2 left
💡 Hint

Consider what happens if a secondary falls behind too much.

Practice

(1/5)
1. What is the primary purpose of the oplog in MongoDB replica sets?
easy
A. To manage database indexes
B. To store user authentication details
C. To record all data changes for replication
D. To backup data to external storage

Solution

  1. Step 1: Understand the role of oplog in MongoDB

    The oplog is a special log that records every data change in a replica set.
  2. Step 2: Connect oplog to replication

    Replication uses the oplog to copy changes from the primary to secondary servers.
  3. Final Answer:

    To record all data changes for replication -> Option C
  4. Quick Check:

    Oplog records changes [OK]
Hint: Oplog logs changes for syncing replicas [OK]
Common Mistakes:
  • Confusing oplog with user data storage
  • Thinking oplog manages backups
  • Assuming oplog stores indexes
2. Which of the following is the correct command to view the oplog entries in a MongoDB replica set?
easy
A. db.oplog.rs.find()
B. db.oplog.find()
C. db.replica.oplog()
D. db.oplogrs.find()

Solution

  1. Step 1: Recall the oplog collection name

    The oplog is stored in the local database under the collection named oplog.rs.
  2. Step 2: Identify the correct query syntax

    To view entries, use db.oplog.rs.find() in the mongo shell.
  3. Final Answer:

    db.oplog.rs.find() -> Option A
  4. Quick Check:

    Correct oplog collection query [OK]
Hint: Oplog collection is oplog.rs in local DB [OK]
Common Mistakes:
  • Using wrong collection name like oplog or oplogrs
  • Trying to call oplog as a function
  • Missing the dot between oplog and rs
3. Given a MongoDB replica set, what will happen if the oplog on the primary server is deleted accidentally?
medium
A. Secondaries will stop replicating and may become stale
B. Secondaries will continue replicating normally
C. Primary will automatically recreate the oplog with old data
D. The replica set will elect a new primary immediately

Solution

  1. Step 1: Understand oplog role in replication

    The oplog stores all changes that secondaries use to replicate data.
  2. Step 2: Consequence of oplog deletion on primary

    If oplog is deleted, secondaries lose the source of changes and stop replicating, causing stale data.
  3. Final Answer:

    Secondaries will stop replicating and may become stale -> Option A
  4. Quick Check:

    Oplog missing = replication stops [OK]
Hint: No oplog means no replication updates [OK]
Common Mistakes:
  • Assuming oplog auto-recreates with old data
  • Thinking secondaries replicate without oplog
  • Confusing oplog deletion with primary election
4. You run db.oplog.rs.find().limit(1) on a secondary node and get an error. What is the most likely cause?
medium
A. The oplog collection does not exist on secondaries
B. You need to switch to the local database first
C. The oplog is empty on secondaries
D. You must run the command on the primary node

Solution

  1. Step 1: Check database context for oplog

    The oplog is stored in the local database, so you must switch to it before querying.
  2. Step 2: Understand error cause

    If you run the command without use local, the shell looks in the wrong database and errors.
  3. Final Answer:

    You need to switch to the local database first -> Option B
  4. Quick Check:

    Oplog in local DB = switch DB first [OK]
Hint: Always use 'local' DB to query oplog [OK]
Common Mistakes:
  • Trying to query oplog in wrong database
  • Assuming oplog only exists on primary
  • Thinking oplog is empty on secondaries
5. In a MongoDB replica set, how does the oplog help maintain data consistency during failover when the primary goes down?
hard
A. Oplog automatically merges conflicting writes from multiple primaries
B. Oplog backs up data externally to restore after failover
C. Oplog prevents any writes during failover to avoid conflicts
D. Secondaries use oplog entries to catch up and elect a new primary with latest data

Solution

  1. Step 1: Understand failover in replica sets

    When primary fails, secondaries elect a new primary to continue operations.
  2. Step 2: Role of oplog in failover

    Secondaries use oplog entries to apply all changes and ensure they have the latest data before election.
  3. Step 3: Why other options are incorrect

    Oplog does not merge conflicting writes or prevent writes during failover; it also does not backup externally.
  4. Final Answer:

    Secondaries use oplog entries to catch up and elect a new primary with latest data -> Option D
  5. Quick Check:

    Oplog syncs data for failover [OK]
Hint: Oplog helps secondaries catch up before election [OK]
Common Mistakes:
  • Thinking oplog merges conflicting writes
  • Assuming oplog blocks writes during failover
  • Confusing oplog with backup system
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