【问题标题】:Mongoose Schema.post across networkMongoose Schema.post 跨网络
【发布时间】:2017-09-27 08:07:03
【问题描述】:

我有两个 Node.js 应用程序,每个应用程序都在不同的机器上运行 Mongoose。第一个上运行一个 MongoDB 数据库,第二个连接到它并定期添加文档。我正在尝试为这些文档的创建添加一个挂钩,以便运行数据库的服务器知道其他服务器已添加数据。我尝试使用 Schema.post() 方法,但它似乎不起作用,因为有两个单独的 Mongoose 实例。这是真的还是我只是不正确地实施它?如果文档是在同一台服务器上创建的,我可以触发钩子,而不是在另一个服务器上。

所以我的想法是直接将钩子添加到 MongoDB,而不是 Mongoose,但我不确定如何去做。我在正确的轨道上吗?

【问题讨论】:

    标签: node.js mongodb mongoose


    【解决方案1】:

    没错,Schema.post() 只在同一个进程中工作。您要么需要使用尾随 MongoDB 的 oplog(如 mongo-oplog)的库,使用所有实例都连接到的消息队列(或 pub/sub)自己实现它(如 Redis、RabbitMQ 等),要么使用本机支持此功能的数据库。例如,PostgreSQL 通过其NOTIFY 功能支持这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-12-29
      • 1970-01-01
      • 2020-06-12
      • 2014-04-12
      • 1970-01-01
      • 2014-03-27
      • 2014-07-20
      • 2010-11-24
      相关资源
      最近更新 更多