2015-07-06 13 views
8

È possibile pubblicare più raccolte in una singola sottoscrizione? se è così, per favore guidamiCome pubblicare più raccolte in una singola chiamata in abbonamento in meteora?

+1

Modifica la domanda e aggiungi uno snippet di codice che hai provato a utilizzare. Aiuterebbe le persone a rispondere molto alla tua domanda! Maggiori informazioni su [come fare una bella domanda] (http://stackoverflow.com/help/how-to-ask). – methode

+0

@methode. Grazie compagno. Seguirò –

risposta

15

Sì. Una funzione publish può restituire una matrice di cursori. Per esempio:

cliente

Meteor.subscribe('roomAndMessages'); 

server di

Meteor.publish("roomAndMessages", function (roomId) { 
    check(roomId, String); 
    return [ 
    Rooms.find({_id: roomId}), 
    Messages.find({roomId: roomId}) 
    ]; 
}); 

nota importante

Se si torna più cursori in un array, il al momento tutti devono provenire da raccolte diverse. Speriamo di eliminare questa restrizione in una versione futura.

+0

Grazie. Ho trovato :) –

+0

Invece di restituire un array, è anche possibile creare una raccolta "virtuale" che è stata impostata nel proprio metodo di pubblicazione. Per filtrare quei documenti puoi usare gli argomenti su publish/subscribe. Se vuoi solo avere documenti complessi per visualizzare i contenuti, questa può essere una soluzione intelligente. Se si desidera utilizzare la raccolta anche per gli aggiornamenti su db, un risultato di matrice è per lo più più facile da implementare. Saluti, Tom –