我希望能为我的项目提供管理员应用程序和客户端应用程序.理想情况下,我希望能够拥有一个共享的MongoDB集合.我怎么能做到这一点?
我尝试在两个不同的应用程序中创建具有相同名称的集合,但发现Meteor将数据保持独立.知道我能做什么吗?谢谢.
Aar*_*ang 17
export MONGO_URL=mongodb://localhost:3002/meteor
Run Code Online (Sandbox Code Playgroud)
然后运行meteor app,它将改变默认数据库meteor使用.因此共享数据库或集合不会成为问题!出于管理原因,我会使用自己管理的单个MongoDB服务器,而不是使用meteor的内部MongoDB.
一个合理的问题,可能值得讨论超过这个答案:
MongoDB连接由Meteor应用程序进程本身处理,就我所阅读和理解而言 - 这是Meteors哲学的一部分,其目标可能是:一个数据源服务于属于它的一个应用程序但许多客户订阅它.
考虑到这一点,在一个应用程序(即您的Meteor应用程序)中组合"admin"和"client"客户端可能是首选方式.
但是,从服务器管理视图中,Meteor以这样的方式处理连接,即始终存在驻留在项目目录中的默认本地数据源(.meteor/local/db尝试meteor mongo --url在流星应用程序进程运行时获取mongo连接字符串).但是,可以为部署目的指定可选的数据源字符串,如这些部署说明中所述.
因此,您需要为您的预期设置选择一种有点令人毛骨悚然的"本地开发部署"方式才能开始工作.或者你去破解消息来源......不,忘掉它.您可能希望您的应用程序和客户端利用例如实时UI更新(发布),这就是Meteor应用程序与"应用程序数据源"相关联的原因,反之亦然.从其他应用程序连接时,触发模型更改的事件将不会通过这些应用程序传输.mongoDB实例本身当然不知道这一点.
我确信核心团队不会出于考虑的原因将数据源连接暴露给配置部分,除非他们使用某种模块概念扩展其体系结构,该模块概念提供跨Meteor实例的核心模型/集合抽象的公共服务层 - 在最不支持发布/订阅事件的意识.
| 归档时间: |
|
| 查看次数: |
8326 次 |
| 最近记录: |