我有2个应用程序,查询同一个数据库,它们都创建了一个数据库DIFF集合。而在myapp:3000
应用乙在其在相同的分贝(comments
)端创建myapp:3300
在courses
应用程式A创建的集合school
。两个服务器都在运行,我该如何查询通过一个应用程序在app B创建在一个集合?
我的问这个问题的原因是,作为一个新手,很容易让我用它全局变量来查询在一个应用程序中创建新的集合。比方说,我创建
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';