javascript - 查询一个应用程序在另一个 Meteor js 应用程序中创建的集合

标签 javascript mongodb meteor collections document

我有 2 个应用程序查询同一个数据库,它们都在数据库上创建了差异集合。 myapp:3000 的应用 A 创建了一个 comments 集合,而 myapp:3300 的应用 B 在其末尾创建了 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();
        }
    });

我无权访问此变量,并且我认为直接访问数据库来查询集合可能是不道德的。

最佳答案

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

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

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

但是,我建议您开始使用 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';

关于javascript - 查询一个应用程序在另一个 Meteor js 应用程序中创建的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44912688/

相关文章:

javascript - angularjs ui-route : change only 1 nested view and save other views from reloading

mongodb - 将项目添加到数组字段的正确 REST 端点是什么?

javascript - Node.js Mongodb-原生驱动连接共享

javascript - 如何在空格键中使用动态对象属性名称?

javascript - Meteor 新手询问最佳实践

javascript - 光标描述文本框

javascript - XMLHTTPrequest 纯文本到 blob(视频)

javascript - 在子元素上应用悬停效果

java - MongoDB java驱动程序连接管理

javascript - 使用按钮单击将 mongodb 数据导出到 Excel