MongoDB

Что это такое

MongoDB — документное хранилище: оно хранит похожие на JSON документы в коллекциях, индексирует поля внутри них и отвечает на запросы по этим индексам, а связанные друг с другом документы позволяет встраивать один в другой — именно поэтому чтение записи становится однократным обращением, а не соединением. Его интерфейс — собственный язык запросов, а не SQL, а гарантии — атомарность в пределах документа и транзакции между документами там, где развёртывание их поддерживает, — те самые, что описаны для этого семейства в предыдущей записи.

Почему это важно

Это самое распространённое документное хранилище, поэтому абстрактные компромиссы проверяются именно на нём. Достоинства реальны: естественно вложенная запись — один документ, чтение её — одна операция, а форма может меняться без миграции. Однако цена столь же конкретна: связи, на которые ссылаются, а не встраивают, требуют соединений на стороне приложения, а схема, которую обеспечивает только чтение кода, накапливает варианты. Понимание того, где ложится эта цена, превращает выбор семейства из предпочтения в суждение.

Что в этом треке

  1. Документы и коллекции (05-backend-data/18-mongodb/01-documents-and-collections) — модель данных и её отличие от таблиц и строк.
  2. Проектирование схемы в хранилище без схемы (05-backend-data/18-mongodb/02-schema-design-in-a-schemaless-store) — встраивание, ссылки и удержание формы под контролем.

Предварительные требования

Что читать дальше