我遇到了一种情况,我想要同步两个mongoDB,一个是本地机器,第二个是远程(在mlab沙箱上)。同步,我正在做:
首先我使用mongodump转储有变化的集合 接下来使用mongorestore我将在远程MongoDB上恢复该集合。
但我面临两个问题。
首先是如何在远程mongoDB上更新集合。 例如:在更改集合上我应该替换远程端的整个集合还是使用其他方式?什么是最好的方式。
第二个问题是我如何检测集合中的变化。或者在整个数据库中。我正在使用loopback框架和事件流npm模块将更改发送到客户端。但我无法在服务器端读取更改流。
我的server \ boot \ realtime.js是:
var es = require('event-stream');
var sync = require('../sync');
module.exports = function(app) {
var completeOrder = app.models.completeOrder;
completeOrder.createChangeStream(function(err, changes) {
sync('completeOrder',function(data){
console.log(data);
},function(err){
console.log(err);
});
changes.pipe(es.stringify()).pipe(process.stdout);
});
}
答案 0 :(得分:0)
第二个问题LoopBack在底层数据库中的数据发生变化时不发送事件,但仅在模型发生变化时才发送。 Mongo 3.6提供了更改流功能,您可以使用它来触发模型更改/执行功能。