【问题标题】:How to - multiple Meteor apps on single MongoDB - same collections?如何 - 单个 MongoDB 上的多个 Meteor 应用程序 - 相同的集合?
【发布时间】:2015-01-27 03:19:42
【问题描述】:

以前有人问过这种问题: How can I share MongoDB collections between Meteor apps?

但是,答案并不明确。

我需要将 Meteor 公共应用和管理应用分开(出于多种原因,但主要是安全和代码管理)。

使用公认的答案:export MONGO_URL=mongodb://localhost:3002/meteor 似乎是合理的,但在另一个用户“matthias”下方指出“从另一个应用程序连接时,不会传输触发模型更改的事件跨这些应用程序。mongoDB 实例本身当然不知道这一点。”

如何触发“其他”流星应用程序以重新评估来自 MongoDB 的事件/触发器?意思很简单,如果我在管理模块中进行更改,我如何让公共站点反映这些更改?假设这就是意思。还有其他功能会被这种方法丢失吗?

谢谢

【问题讨论】:

  • 你可以通过 mongo 控制台对数据库进行更改,Meteor 应用程序仍然会拾取它,如果它通过 oplog tailing 观察数据库,它会非常快。
  • 所以你是说跨应用更新不是问题?我的印象是每个 Meteor App 都与它的 MongoDB 实例密切相关。不确定其他 Meteor 应用程序会“监听”“其他”mongo 集合是否有意义。
  • 这不是问题。 Mongodb 实例与应用程序无关。只要他们通过 MONGO_URL 共享同一个实例,所有魔法都会按照您希望的方式发生。

标签: mongodb meteor


【解决方案1】:

答案是您不必做任何事情。只要应用使用相同的数据库(由MONGO_URL 标识),它们就会对数据的变化做出反应性响应。

事实上,将您的应用分为前端和后端是一个很好的策略,如本视频中所述,Why you should split your meteor app

您甚至可以使用mongo shell 来更新/插入/删除数据库中的文档,出版物会提取它们。

【讨论】:

  • 直接插入 MongoDB 时请注意... ID 与通过 Meteor 插入的文档不同。
  • 嘿,我正在做与 mfr 在他的问题中提到的相同的事情。当我在 MongoDb 中插入数据时,我遇到了一个问题,我的应用程序不会自动反映插入的数据我总是需要手动刷新它才能在我的 Ui 中看到新插入的数据。这是我的 :- process.env.MONGO_URL = 'mongodb://localhost:27017/test_db';
  • @sid:除了这个答案的范围之外,很难诊断。你应该检查你的订阅,尤其是。如果您使用 Iron-router,如果您仍然需要帮助,请发布新问题。
  • 嘿,丹,看看我的新问题。这是它的链接:- stackoverflow.com/questions/31472976/…
猜你喜欢
  • 1970-01-01
  • 2012-10-18
  • 2012-08-28
  • 1970-01-01
  • 2015-10-30
  • 1970-01-01
  • 1970-01-01
  • 2014-09-29
  • 2014-04-18
相关资源
最近更新 更多