Я начинаю проект, который, я думаю, особенно подходит для MongoDB из-за скорости и масштабируемости, которые он предоставляет.
Модуль, в котором я сейчас заинтересован, - это общение с чатом реального времени. Если бы я сделал это в традиционной СУБД, я бы разделил ее на:
- Канал (канал имеет много пользователей)
- Пользователь (Пользователь имеет один канал, но много сообщений)
- Сообщение (сообщение имеет пользователя)
В целях использования этого случая я хотел бы предположить, что одновременно будет задействовано 5 каналов, каждый из которых обрабатывает не более 5 сообщений в секунду.
Конкретные запросы, которые должны быть быстрыми:
- Получить новые сообщения (на основе закладки, метки времени или счетчика)?
- Сообщение на канал
- Убедитесь, что пользователь может публиковать сообщения в канале
Принимая во внимание, что ограничение документа с помощью MongoDB составляет 4 МБ, как бы вы планировали схему? Как бы вы выглядели? Есть ли какие-либо ошибки, за которыми я должен следить?