Javascript 查询由另一个Meteor js应用程序中的应用程序创建的集合

Javascript 查询由另一个Meteor js应用程序中的应用程序创建的集合,javascript,mongodb,meteor,collections,document,Javascript,Mongodb,Meteor,Collections,Document,我有两个应用程序查询同一个数据库,它们都在一个数据库上创建了不同的集合。myapp:3000的应用程序A创建了一个集合comments,而myapp:3300的应用程序B在同一数据库(学校)的末尾创建了课程)。两台服务器都在运行,如何在应用程序B中查询应用程序a创建的a集合 我问这个问题的原因是,作为一个新手,使用it全局变量查询应用程序中创建的新集合对我来说很容易。比如说我创造了 UsesList = new Mongo.Collection('useslist'); 我可以这样发布: Me

我有两个应用程序查询同一个数据库,它们都在一个数据库上创建了不同的集合。
myapp:3000的应用程序A创建了一个集合
comments
,而
myapp:3300的应用程序B在同一数据库(
学校
)的末尾创建了
课程
)。两台服务器都在运行,如何在应用程序B中查询应用程序a创建的a集合

我问这个问题的原因是,作为一个新手,使用it全局变量查询应用程序中创建的新集合对我来说很容易。比如说我创造了

UsesList = new Mongo.Collection('useslist');
我可以这样发布:

Meteor.publish('UsesList', function () {
        if (!this.userId) {
            return false;
            throw new Meteor.Error('Not authorized');
        } else {
            return UsesList.find();
        }
    });
我无法访问此变量,我认为直接访问数据库来查询集合可能是不道德的。

在两个不同的应用程序中“创建”同一集合没有问题

集合标识由您提供给集合构造函数的名称字符串决定,当然还有数据库本身的标识

您可以将它们分配给所需的任何变量标识符,并且它们在应用程序之间可能不同

但是,我建议您开始使用ES6模块并减少全局名称空间污染。当你在学习时就开始使用最佳实践,这样你以后就不必忘记那些不好的实践

因此,如果两个应用程序都连接到同一个数据库:

// same in app 1 and app 2
import { Mongo } from 'meteor/mongo';
export const UsesList = new Mongo.Collection('user_list');

// and importing it
import { UserList } from '../path/to/other/file';

这两个应用程序是否都使用相同的mongo db实例/集群作为后端?我了解到该功能适用于Meteor 1.3+
,我使用的是
1.2.1版,并且害怕升级以避免损坏,它不起作用。与版本1.2.1相关的任何其他建议。感谢您的帮助,所以请不要使用模块功能。只需在两个应用程序中以相同的方式定义即可。你试过了吗?如果它不起作用,您确定确实使用了相同的DB吗?当然,在不同的机器上使用相同名称的两个本地DBs将无法工作。