我陷入了一种我想同步两个 mongoDB 的情况,一个在本地机器上,第二个在远程机器上(在 mlab 沙箱上)。对于同步,我正在做:
首先,我使用 mongodump 转储具有更改的集合,然后使用 mongorestore 我在远程 MongoDB 上恢复该集合。
但是我面临两个问题。
首先是如何更新远程 mongoDB 上的集合。例如:在更改集合时,我应该替换远程端的整个集合还是使用其他方式?以及这样做的最佳方法是什么。
第二个问题是如何检测集合中的变化。或在整个数据库中。我正在使用环回框架和事件流 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);
});
}