Метеор: реактивность в публикациях с вложенными запросами монго

У меня есть такая коллекция:

//Groups Collection
{
  _id:1,
  members: [
    {
      memberId: 'A1B2',
      content: [1,2,3]
    },
    {
      memberId: 'C10B',
      content: [4,5,6]
    }
  ]
},
{
  _id:2,
  members: [
    {
      memberId: 'A1B2',
      content: [7,8,9]
    },
    {
      memberId: 'F804',
      content: [10,11,12]
    }
  ]
}

и еще одна коллекция, подобная этой:

//Users Collection
{
    _id: 'A1B2',
    name: 'Newton'
},
{
    _id: 'C10B',
    name: 'Gauss'
},
{
    _id: 'F804',
    name: 'Leibniz'
}

И мне нужна публикация со всеми идентификаторами пользователей в массиве Groups с _Id = 1. Я пробовал:

Meteor.publish('themembers',idGroup,function() {
    return Users.find({_id:{$in:Groups.findOne(idGroup).members.map(function(e) {return e.memberId})}});
});

тогда подписываюсь:

Template.problem.onCreated(function() {
    Meteor.subscribe('themembers',1);
});

Теперь я могу получить доступ к членам в помощнике:

Template.problem.helpers({
    members: function() {
        return Users.find();
    }
});

и помощники тоже работают правильно.

Но теперь, если я добавлю нового участника в группу, он не появится в списке... мои подписки, похоже, не будут реактивными.

Что я делаю неправильно?


person Phraellyn    schedule 13.07.2016    source источник
comment
Возможный дубликат Meteor.publish: опубликовать коллекцию, которая зависит от другой коллекции   -  person MasterAM    schedule 14.07.2016


Ответы (1)


Типичная проблема с Метеором:

Вы должны посмотреть на peerlibrary:reactive-publish

https://github.com/peerlibrary/meteor-reactive-publish

person MrE    schedule 15.07.2016