user2355793
user2355793

Reputation: 87

mongoDB watch() collection

I am trying to watch for changes in my collection but I am getting the following error: "MongoError: Majority read concern requested, but it is not supported by the storage engine."

The answer seems to be: "To use watch you need to use replica set which is not part of mLab".

But i have a paid plan with a replica set. My connection to mlab looks like this.

mongoose.connect('mongodb://<dbuser>:<dbpassword>@ds327925-a0.mlab.com:27925,ds327925-a1.mlab.com:27925/<dbname>?replicaSet=rs-ds327925');

const taskCollection = db.collection('tasks');
const changeStream = taskCollection.watch();

changeStream.on('change', (change) => {

});

Upvotes: 0

Views: 382

Answers (1)

D. SM
D. SM

Reputation: 14490

Majority read concern requires WiredTiger storage engine.

Availability of WiredTiger in mlab is limited to "dedicated" plans, apparently.

Besides upgrading your plan, you could also consider migrating to MongoDB Atlas.

In MongoDB 4.2+ change streams do not require majority read concern, but I don't imagine 4.2 is available in mlab either.

Upvotes: 3

Related Questions