Создайте реактивную публикацию с дополнительными полями в каждом документе

Я хочу сделать публикацию с несколькими дополнительными полями, но я не хочу использовать такжеCollection.aggregate и потерять мои обновления публикации при изменении коллекции (поэтому я не могу просто использоватьself.added в этом тоже нет).

Я планирую использоватьCursor.observeChanges чтобы достичь этого. У меня есть два основных ограничения:

Я не хочу публиковать все поля документовЯ хочу использовать некоторые из неопубликованных полей для создания новых. Например, у меня есть полеitem где я храню массивitem _Я бы. Я не хочу публиковать это, но я хочу опубликоватьitem_count поле с длиной моего поля массива

А вот и подход:

Я планирую цепочку запросов на поиск. Я никогда не делал этого, поэтому мне интересно, если это возможно. Общая (упрощенная) структура запроса будет выглядеть следующим образом:http://jsfiddle.net/Billybobbonnet/1cgrqouj/ (Я не могу получить код правильно отображается здесь)

На основепример подсчета в документации MeteorЯ храню свой запрос в переменнойhandle чтобы остановить уведомление об изменениях, если клиент отписался:

self.onStop(function () {
  handle.stop();
});
Я добавляю флагinitializing = true; перед моим запросом, и я установил егоtrue как раз перед звонкомself.ready();, Я использую этот флаг, чтобы изменить мойitemCount переменная только в том случае, если это публикация инициализирована. Так что в основном я меняюswitch как это:
switch (field) {
  case "item"
    if (!initializing)
      itemCount = raw_document.item.length;
      break;
  default:
}

Я хотел убедиться, что этот подход хорош и возможен, прежде чем вносить большие изменения в мой код. Может ли кто-нибудь подтвердить мне, если это правильный путь?

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

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