发布与第一个集合中的任何文档相关的集合和其他集合的文档

时间:2015-01-19 13:48:19

标签: javascript mongodb meteor

场景是我想发布一个与第一个集合中任何文档有关系的整个集合和用户数据(例如个人资料)。
问题是我如何发布那部分用户集合?

2 个答案:

答案 0 :(得分:1)

嗯,有两种方法,首先是使用包

https://atmospherejs.com/cottz/publish-with-relations

第二个 - 在发布功能中,您可以从docs

返回多个游标
Meteor.publish("roomAndMessages", function (roomId) {
  check(roomId, String);
  return [
    Rooms.find({_id: roomId}, {fields: {secretInfo: 0}}),
    Messages.find({roomId: roomId})
  ];
});

答案 1 :(得分:0)

经过一番研究,我发现reywood:publish-composite完全解决了我的问题 示例:

Meteor.publishComposite('getItemsList', {
find: function() {
    return Items.find({});
},
children: [
    {
        find: function(item) {
            return Meteor.users.find(
                { _id: item.userId },);
        }
    }
]});

这将使用与其有关系的任何用户文档发布所有项目文档。 (Items.userId映射到Meteor.users._id)