node.js - 环回事件流跟踪服务器端模型中的更改

标签 node.js mongodb loopbackjs strongloop event-stream

我陷入了一种情况,我想同步两个 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);
  });

}

最佳答案

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

关于node.js - 环回事件流跟踪服务器端模型中的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43138122/

相关文章:

javascript - 使用 NodeJS 每 5 分钟向 MongoDB 添加/插入 1000 个数据中的 10 个

node.js - 如何通过分离的后端和前端进行社交身份验证(Passport/Express/React)

loopbackjs - 环回 : Event resetPasswordRequest not called after reset

loopbackjs - 环回 Multi-Tenancy 数据库交换

javascript - Strongloop Loopback - 远程方法中的异步函数处理(每个函数内部)

javascript - Node 模块无法识别为模块

node.js - 如何在我的项目中使用 npm 包的自定义版本?

python - 如何通过 python 脚本运行 mongodb 查询?

mongodb - Mgo 字段类型错误

mysql - 如何在 MySQL 8 中通过 int 而不是通过名称从嵌套 JSON 中获取