Как настроить дизайн схемы для пользователей с уведомлениями в MongoDB - PullRequest
1 голос
/ 05 марта 2020

В настоящее время я работаю над настройкой отношений между пользователями и уведомлениями в моем приложении. Каждый пользователь имеет много уведомлений, и одно уведомление может иметь много пользователей. В настоящее время я храню массив идентификаторов пользователей в документе уведомления и массив объектов, содержащих идентификатор уведомления вместе с логическим флагом, указывающим, было ли оно прочитано или нет в документе пользователя. Мои требования следующие:

  1. Я должен иметь возможность запрашивать все уведомления пользователя. Это можно сделать с помощью нумерации страниц.
  2. Уведомления сохраняются в базе данных и публикуются в уникальном канале для каждого пользователя через Redis Pub / Sub. Это используется в сочетании с подписками GraphQL, позволяющими пользователям получать уведомления в режиме реального времени в приложении.

  3. Мне нужно иметь возможность ежедневно отправлять дайджест по электронной почте всем пользователям. По сути, это влечет за собой выборку всех пользователей вместе с их непрочитанными уведомлениями и разбор уведомлений каждого отдельного пользователя для создания шаблона HTML электронной почты, а затем обновляет логический флаг с непрочитанного до прочитанного.

Мои вопросы:

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

  2. Это идеальный способ упорядочить схему? В конце концов мне придется иметь дело с пользовательскими документами, которые становятся слишком большими из-за размера массива. Насколько большим может быть массив в пользовательском документе, прежде чем я приблизлюсь к пределу?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...