【问题标题】:Meteor Publish and MongoDBMeteor Publish 和 MongoDB
【发布时间】:2014-12-05 01:07:52
【问题描述】:

我正在尝试决定或找出哪个选项是 Meteor 发布和 MongoDB 的最佳实践。

我有一个拥有 300 多个用户的组织,我的第一个选择是在组织 mongo 文档中添加一个 userId 数组并执行以下操作:

Meteor.publish('organizationsUsers', function() {
    var organization = Organizations.findOne({_id: this.userId});.fetch();
    var usersArray = _.flatten(_.pluck(organization, "users"), true);
    return Meteor.users.find({_id: {$in: usersArray}}); 
});

我的第二个选择只是为每个用户添加一个 organizationId 并执行以下操作:

Meteor.publish('organizationsUsers', function() {
    var user = Meteor.users.findOne(this.userId);
     return Meteor.users.find({organizationId: user.organizationId});
});

第一个选项我有一个长数组的 MongoDB,而第二个选项更简单。

【问题讨论】:

    标签: mongodb meteor


    【解决方案1】:

    经过一些快速研究并询问一般规则后,如果您的领域超过 100 个项目(在我的情况下会超过 300 个),那么最好采用第二种方法。

    此外,当 mongo 使用第一个选项查询属于某个组织的所有用户时,mongo 会获取整个数组并通过索引查看每个用户,而第二个选项仅通过索引。

    【讨论】:

    • 只要确保你有一个关于 organizationID 的索引,第二个应该总是更快。
    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 2013-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-03-20
    • 2015-07-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多