mongoDB 手表() collection

mongoDB watch() collection

我正在尝试观察 collection 中的变化,但出现以下错误: "MongoError: Majority read concern requested, but it is not supported by the storage engine."

答案好像是:"To use watch you need to use replica set which is not part of mLab".

但我有一个带副本集的付费计划。我与 mlab 的连接如下所示。

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) => {

});

大多数阅读关注requires WiredTiger storage engine

显然,在 mlab 中 WiredTiger 的可用性是 limited to "dedicated" plans

除了升级您的计划,您还可以考虑迁移到 MongoDB Atlas。

在 MongoDB 4.2+ 中更改流 do not require majority read concern,但我不认为 4.2 在 mlab 中可用。