Я хочу написать прослушиватель изменений в коллекции в mongoDB для приложения nodejs на стороне сервера. Я использую Robe, чтобы получить oplog. Вот мой код:
var co = require('co'),
Robe = require('robe');
co(function*() {
// connect to db
var db = yield Robe.connect('mongodb://localhost/');
yield collection.addWatcher(function(collectionName, operationType, data) {
console.log(collectionName)
});
var oplog = yield db.oplog();
yield oplog.start();
// listen for any operation on any collection
oplog.onAny(function(collectionName, operationType, data) {
console.log("something happened!!!")
});
})
.catch(function(err) {
console.error(err);
});
В документации к Robe сказано, что для получения oplog мне нужно подключиться к набору реплик в mongoDB. Я читал о наборе реплик на mongoDB, и я не был в состоянии понять это. Я создал набор реплик под названием «rs0». Я выполнил эту команду, чтобы запустить mongod:
mongod --replset "rs0"
Он по-прежнему ничего не делает при изменении БД. Это действительно правильный способ сделать это?