我正在尝试使用 mongoose 构造在 MongoDB 中的数据库集合上创建一个手表,
collection.watch({ fullDocument: "updateLookup" })
我的整个功能如下
exports.createWatchOnAuthCollection = (site, type) => {
if (watchedTypes.includes(type + '_' + site)) {
console.log('Ignoring.. Already watch added on this type and site ' + type + '_' + site);
return;
}
dbConnectionPool.getDBConnection('auth_' + site, function (dbConnection) {
if (type == 'unit_status') {
console.log('Trying to add watch on ' + site);
var collection = dbConnection.collection('units');
collection.watch({
fullDocument: "updateLookup"
})
.on('change', function (change) {
handleStatusUpdate(site, change);
})
.on('error', function (error) {
console.log('Got a error reply')
});
watchedTypes.push(type + '_' + site);
} else if (type == 'iatas') {
}
});
}
我面临的问题是,当我循环此函数调用以在多个集合上创建手表时,只有在创建的最新集合上的手表实际上有效,并且调用了回调,但在其他集合上没有。我的调用函数如下
sites.forEach(site => {
controller.createWatchOnAuthCollection(site, watchType);
})
提前致谢..:)