查询由另一个 Meteor js 应用程序中的应用程序创建的集合
Querying collection created by an app in another Meteor js app
我有 2 个应用程序查询同一个数据库,它们都在数据库上创建了差异集合。 myapp:3000
的应用程序 A 创建了一个集合 comments
,而 myapp:3300
的应用程序 B 在同一数据库 (school
) 的末尾创建了 courses
。两台服务器都是运行,如何在应用B中查询应用A创建的集合?
我问这个问题的原因是,作为一个新手,我很容易通过使用它的全局变量来查询在应用程序中创建的新集合。假设我创建了
UsesList = new Mongo.Collection('useslist');
我可以这样发布:
Meteor.publish('UsesList', function () {
if (!this.userId) {
return false;
throw new Meteor.Error('Not authorized');
} else {
return UsesList.find();
}
});
我不会访问这个变量,我认为直接访问数据库来查询集合可能是不道德的。
在两个不同的应用程序中 "creating" 同一个集合没有问题。
集合标识由您提供给集合构造函数的名称字符串决定,当然还有数据库本身的标识。
您可以将它们分配给您想要的任何变量标识符,并且它们在应用程序之间可能不同。
但是,我建议您开始使用 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';
我有 2 个应用程序查询同一个数据库,它们都在数据库上创建了差异集合。 myapp:3000
的应用程序 A 创建了一个集合 comments
,而 myapp:3300
的应用程序 B 在同一数据库 (school
) 的末尾创建了 courses
。两台服务器都是运行,如何在应用B中查询应用A创建的集合?
我问这个问题的原因是,作为一个新手,我很容易通过使用它的全局变量来查询在应用程序中创建的新集合。假设我创建了
UsesList = new Mongo.Collection('useslist');
我可以这样发布:
Meteor.publish('UsesList', function () {
if (!this.userId) {
return false;
throw new Meteor.Error('Not authorized');
} else {
return UsesList.find();
}
});
我不会访问这个变量,我认为直接访问数据库来查询集合可能是不道德的。
在两个不同的应用程序中 "creating" 同一个集合没有问题。
集合标识由您提供给集合构造函数的名称字符串决定,当然还有数据库本身的标识。
您可以将它们分配给您想要的任何变量标识符,并且它们在应用程序之间可能不同。
但是,我建议您开始使用 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';