2016-07-13 2 views
0

J'ai une collection comme celui-ci:Meteor: Réactivité dans les publications avec mongo requêtes imbriquées

//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] 
    } 
    ] 
} 

et une autre collection comme celui-ci:

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

Et je besoin d'une publication avec tous les ids de les utilisateurs tableau Groupes avec _id = 1. Je tryed:

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

j'ABONNER:

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

Maintenant, je peux accéder aux membres de l'assistant:

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

et les aides fonctionne bien aussi. Mais maintenant, si j'ajoute un nouveau membre au groupe, il n'apparait pas dans la liste, ... mes abonnements ne semblent pas être réactifs.

Qu'est-ce que je fais de mal?

+0

double possible de [Meteor.publish diffusez collection qui dépend de l'autre collection] (http://stackoverflow.com/questions/26398952/meteor-publier-publier-collection-qui-depend-on-other-collection) – MasterAM

Répondre