Meteor Publish和MongoDB

时间:2014-12-04 16:55:18

标签: mongodb meteor

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

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

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具有长数组,第二个选项更简单。

1 个答案:

答案 0 :(得分:0)

好的一些经过一些快速的研究并询问一般规则,如果你的领域更多的是100项,在我的情况下将超过300项,最好采用第二种方法。

当mongo查询属于组织的所有用户时,第一个选项mongo将获取整个数组,并通过索引查找每个用户,第二个选项仅通过索引查找。