У меня есть такая коллекция:
//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();
}
});
и помощники тоже работают правильно.
Но теперь, если я добавлю нового участника в группу, он не появится в списке... мои подписки, похоже, не будут реактивными.
Что я делаю неправильно?