Слияние коллекций в Метеоре

Представьте, что у вас есть несколько коллекций, которые вы хотите отобразить в одной социальной новостной ленте, напримерPosts а такжеUsers (новые регистрации). Как бы вы отобразили оба в списке, отсортированном по дате создания?

Идея 1 - слияние в клиенте

Вы публикуете сущности отдельно, а в клиенте сортируете каждую из них по дате и объединяете их в один отсортированный массив, который затем отображается в{{#each}} итератор.Проблема: AFAIK это требует, чтобы реактивные курсоры были сведены в статические массивы, поэтому теперь страница не будет обновляться. (Возможно, есть способ заставить страницу пересчитать этот массив при изменении какой-либо коллекции, прибегая к такому подходу?)

Идея 2 - создание новой коллекции

Вы создаете новую коллекцию, скажемFeedItems, Когда новыйPost или жеUser создан, вы также создаете новыйFeedItem и скопируйте в него соответствующую информацию. Отображение элементов в клиенте теперь очень просто.Проблема: Теперь нет никакой реактивности между каноническими объектами иFeedItem их версии, поэтому, если кто-то изменит свое имя, удалит сообщение и т. д., это не будет отражено в ленте. (Возможно, есть способ создать реактивность между коллекциями, чтобы спасти этот подход?)

Идея 3 - слияние в публикации

Возможно, есть какой-то способ придерживаться существующих коллекций, но создание дополнительного'newsFeed' публикация, которая каким-то образом объединит их. Однако я не видел никакого способа сделать это. В документации я вижу, что вы можете публиковать массив коллекций, но AFAIK это эквивалентно публикации одних и тех же коллекций по одному.

Один из этих подходов на правильном пути? Или есть другой, о котором я не думал?

Ответы на вопрос(3)

Ваш ответ на вопрос