Итоги и что дальше

Собираем картину целиком и намечаем, куда двигаться после основ.

Главный навык, который вы получили, — думать документами: проектировать данные под запросы, а не под нормализацию.

Что мы прошли

  • Модель. Документы, коллекции, базы; BSON; соответствие реляционным понятиям.
  • CRUD. insertOne/insertMany, find с операторами запроса, обновление с $set/$inc/$push/$pull, upsert и удаление.
  • Моделирование. Встраивание против ссылок, связи, денормализация, валидация схемы.
  • Агрегация и индексы. Конвейер с $match/$group/$lookup, индексы и explain.
  • Эксплуатация. Драйвер Node.js, транзакции, репликация, шардирование, проектирование схем.

Ключевые принципы на память

  • Структура следует за запросами. Сначала «как читается», потом «как хранится».
  • Что вместе читается — вместе хранится. Это решает спор «встраивать или ссылаться».
  • Индекс под запрос. Без индекса — скан; индексируют поля частых фильтров и сортировок.
  • Дублирование — инструмент. Денормализуйте стабильные данные ради скорости чтения.

Куда двигаться дальше

  • Углубить агрегацию. Этапы $unwind, $facet, $bucket, оконные операции — мощный аналитический инструмент.
  • Производительность. Покрывающие индексы, профайлер медленных запросов, паттерны проектирования (bucket, computed, schema versioning).
  • Atlas и эксплуатация. Бэкапы, мониторинг, Atlas Search (полнотекстовый поиск), триггеры.
  • Mongoose. Если пишете на Node.js — ODM со схемами, валидацией и удобными моделями.
  • Change streams. Подписка на изменения данных в реальном времени — для уведомлений и синхронизации.

Практика важнее теории

Лучший следующий шаг — поднять бесплатный кластер Atlas или контейнер Docker и перенести в MongoDB структуру какого-нибудь своего проекта. Спроектируйте схему от запросов, наполните данными, напишите агрегации, добавьте индексы и посмотрите на explain. Именно на реальной задаче документное мышление становится привычкой.

Итог

  • Вы освоили модель, CRUD, моделирование, агрегацию, индексы и основы эксплуатации MongoDB.
  • Главное — проектировать данные под запросы и осознанно выбирать встраивание, ссылки и денормализацию.
  • Дальше: продвинутая агрегация, производительность, Atlas, Mongoose и change streams — на практике своего проекта.
Проверьте себя
1. Какой главный принцип проектирования данных в MongoDB?
AВсегда нормализовать данные, как в SQL
BПроектировать структуру под частые запросы — структура следует за запросами
CХранить все данные в одной коллекции
DНикогда не дублировать данные
2. Что разрешает спор «встраивать или ссылаться»?
AПравило «что вместе читается — вместе хранится»
BВсегда встраивать
CВсегда ссылаться
DРазмер базы данных
3. Что из перечисленного — разумный следующий шаг после основ?
AПерестать пользоваться индексами
BСпроектировать схему реального проекта в Atlas/Docker и применить агрегации и индексы на практике
CПереписать всё на реляционную БД
DХранить все запросы без explain
Поддержать проект