2015-07-06 10 views
8

Czy mogę opublikować wiele kolekcji w jednym wywołaniu subskrypcji? jeśli tak, poprowadź mnie.Jak opublikować wiele kolekcji w jednym wywołaniu subskrypcji w meteodzie?

+1

Edytuj pytanie i dodaj fragment kodu, którego próbujesz użyć. Pomoże to osobom, które odpowiedzą na twoje pytanie w wielkim stopniu! Przeczytaj więcej o [jak zadać świetne pytanie] (http://stackoverflow.com/help/how-to-ask). – methode

+0

@metoda. Dzięki stary. Będę podążać za –

Odpowiedz

15

Tak. Funkcja publish może zwrócić tablicę kursorów. Na przykład:

Client Server

Meteor.subscribe('roomAndMessages'); 

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

Ważna uwaga

Jeśli zwracać wiele kursorów w tablicy, y obecnie wszystkie muszą pochodzić z różnych kolekcji. Mamy nadzieję, że zniesiemy to ograniczenie w przyszłym wydaniu.

+0

Dzięki. Znalazłem :) –

+0

Zamiast zwracać tablicę, możesz również utworzyć "wirtualną" kolekcję, którą skonfigurujesz we własnej metodzie publikacji. Aby odfiltrować te dokumenty, możesz użyć argumentów dotyczących publikowania/subskrybowania. Jeśli po prostu chcesz mieć złożone dokumenty do wyświetlania treści, to może to być inteligentne rozwiązanie. Jeśli chcesz użyć kolekcji również do aktualizacji db, wynik tablicy jest łatwiejszy do wdrożenia. Pozdrawiam, Tom –

Powiązane problemy