6 min read
•Question 11 of 27hardWhat is replication in MongoDB?
Understanding replica sets.
What You'll Learn
- What replica sets are
- How replication works
- Read preferences
What is a Replica Set?
A replica set is a group of MongoDB servers that maintain the same data set, providing:
- High availability - Automatic failover
- Data redundancy - Multiple copies
- Read scaling - Read from secondaries
Replica Set Architecture
code.jsJavaScript
Primary
/ \
/ \
Secondary Secondary- Primary: Receives all writes
- Secondary: Replicate from primary
- Arbiter: Votes in elections (no data)
How It Works
- Writes go to primary
- Primary records to oplog
- Secondaries replicate oplog
- If primary fails, election occurs
- New primary elected
Read Preferences
code.jsJavaScript
// Read from primary only (default)
db.users.find().readPref("primary");
// Read from primary preferred
db.users.find().readPref("primaryPreferred");
// Read from secondary
db.users.find().readPref("secondary");
// Read from nearest (lowest latency)
db.users.find().readPref("nearest");Mongoose Configuration
code.jsJavaScript
mongoose.connect('mongodb://host1,host2,host3/mydb', {
replicaSet: 'myReplicaSet',
readPreference: 'secondaryPreferred'
});Write Concern
code.jsJavaScript
// Wait for majority acknowledgment
db.users.insertOne(
{ name: "John" },
{ writeConcern: { w: "majority", wtimeout: 5000 } }
);