我正在使用复制的MongoDB数据库,并收听我的应用程序中的更改流。我使用以下代码对此进行设置并收听测试表:
const url = 'mongodb://localhost:27017/?replicaSet=rs'
let client = new MongoClient(url, {
keepAlive: true,
connectTimeoutMS: 60000,
socketTimeoutMS: 60000,
})
try {
let dbclient = await client.connect()
console.log(dbclient)
const db = dbclient.db('test')
const collection = db.collection('accounts')
const changeStream = collection.watch(pipeline)
changeStream.on('change', function(change) {
console.log('changed', change)
})
} catch (err) {
console.log('mongo err:', err)
}
但是偶尔我会收到以下错误消息:
未捕获的MongoError:只允许一种恢复选项,但是发现了多种。
在应用程序闲置了一段时间后,在过去3天中已经发生过两次。我不知道有什么方法可以复制它。
除了this JIRA issue之外,我没有找到关于此错误的任何信息,我不确定这是否与我的问题有相同的根本原因。我正在使用npm上可用的最新版本的mongodb。
如何捕获此错误并正确处理?