我正在尝试决定或找出哪个选项是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具有长数组,第二个选项更简单。
答案 0 :(得分:0)
好的一些经过一些快速的研究并询问一般规则,如果你的领域更多的是100项,在我的情况下将超过300项,最好采用第二种方法。
当mongo查询属于组织的所有用户时,第一个选项mongo将获取整个数组,并通过索引查找每个用户,第二个选项仅通过索引查找。