2015-07-06 1 views
8

Я могу опубликовать несколько коллекций в одном абонементе? если так, пожалуйста, направляйте меня.Как опубликовать несколько коллекций в режиме единой подписки в метеор?

+1

Измените свой вопрос и добавьте фрагмент кода, который вы пытались использовать. Это поможет людям ответить на ваш вопрос очень! Подробнее о [как задать отличный вопрос] (http://stackoverflow.com/help/how-to-ask). – methode

+0

@methode. Спасибо друг. Я последую за –

ответ

15

Да. Функция publish может возвращать массив курсоров. Например:

клиента

Meteor.subscribe('roomAndMessages'); 

сервера

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

Важное примечание

Если возвращать несколько курсоров в массив, В настоящее время все должны быть из разных коллекций. Мы надеемся снять это ограничение в будущем выпуске.

+0

Спасибо. Я нашел :) –

+0

Вместо того, чтобы возвращать массив, вы также можете создать «виртуальную» коллекцию, которую вы настраиваете в своем собственном методе публикации. Чтобы отфильтровать эти документы, вы можете использовать аргументы для публикации/подписки. Если вы просто хотите иметь сложные документы для отображения контента, это может быть разумным решением. Если вы хотите использовать коллекцию также для обновлений на db, результат массива в основном проще реализовать. Привет, Том –

Смежные вопросы