Метеор - Лучший подход к публикации sh всех авторов и только их последний пост - PullRequest
1 голос
/ 23 апреля 2020

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

Я использую Метеор 1.10 + Blaze

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

Я хочу показать список, в котором отображается имя каждого автора и название / дата их последнего поста, например:

  1. Брайан Лопес - «как быть счастливым» - 03/25/20
  2. Рэй Смит - «научиться готовить» - 02/04/20

Примеры схем:

author_schema = {
        _id: 'JsQEJG3qsBrKE6hep',
        name: 'Bryan',
        surname: 'Lopez',
      }

post_schema = {
        _id: 'Ftxw9YKTaxnKtJztg',
        tittle: 'how to be happy',
        date: ISODate("2020-01-30T10:00:46.572Z"),
        authorId: 'JsQEJG3qsBrKE6hep'
      }

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

Есть ли способ избежать публикации всех постов и иметь возможность публиковать только sh последний пост (пост с самой последней датой) каждого автора?

Большое спасибо за вашу помощь! Метеоритные правила!

1 Ответ

1 голос
/ 23 апреля 2020

Хорошо, это довольно просто. Наиболее эффективным способом является сохранение 2 дополнительных полей в коллекции авторов и их добавление при каждом создании сообщения.

Опять же: при сохранении сообщения в коллекции сообщений сохраняйте lastPostName и lastPostDate в Автор коллекции и перезаписать с каждым постом. Вы также можете добавить lastPostId, чтобы вы могли легко создать URL для этого конкретного сообщения.

Пример (все эти данные хранятся в коллекции авторов):

<span>
   <a target="_blank" href="....your url/dynamic...postId">{Your dynamic post name}</a>
   <span>{Your dynamic post date}</span>
</span

Если вы хотите Выполните поиск, как: авторы с последним постом сегодня или за последние 7 дней, что будет довольно легко и эффективно. Просто чтобы убедиться, что в вашей коллекции есть индекс для любого поля, которое вы хотите использовать для поиска.

...