【问题标题】:Loopback event stream track changes in a model on server side环回事件流跟踪服务器端模型中的更改
【发布时间】:2017-03-31 10:12:20
【问题描述】:

我陷入了一种我想同步两个 mongoDB 的情况,一个在本地机器上,第二个在远程机器上(在 mlab 沙箱上)。为了同步,我正在做:

首先我使用 mongodump 转储有变化的集合 接下来通过使用 mongorestore,我将在远程 MongoDB 上恢复该集合。

但是我面临两个问题。

首先是如何更新远程 mongoDB 上的集合。 例如:在更改集合时,我应该替换远程端的整个集合还是使用其他方式?以及这样做的最佳方法是什么。

第二个问题是如何检测集合中的变化。或在整个数据库中。我正在使用环回框架和事件流 npm 模块将更改发送到客户端。但我无法读取服务器端的更改流。

我的服务器\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);
  });

}

【问题讨论】:

  • 您有解决方案吗?你是如何解决这个问题的?请回答

标签: node.js mongodb loopbackjs strongloop event-stream


【解决方案1】:

关于第二个问题,LoopBack 不会在底层数据库中的数据发生变化时发送事件,而只会在模型发生变化时发送事件。 Mongo 3.6 提供更改流功能,您可以使用它来触发模型更改/执行您的功能。

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2020-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多