MongoDB
Что это такое
MongoDB — документное хранилище: оно хранит похожие на JSON документы в коллекциях, индексирует поля внутри них и отвечает на запросы по этим индексам, а связанные друг с другом документы позволяет встраивать один в другой — именно поэтому чтение записи становится однократным обращением, а не соединением. Его интерфейс — собственный язык запросов, а не SQL, а гарантии — атомарность в пределах документа и транзакции между документами там, где развёртывание их поддерживает, — те самые, что описаны для этого семейства в предыдущей записи.
Почему это важно
Это самое распространённое документное хранилище, поэтому абстрактные компромиссы проверяются именно на нём. Достоинства реальны: естественно вложенная запись — один документ, чтение её — одна операция, а форма может меняться без миграции. Однако цена столь же конкретна: связи, на которые ссылаются, а не встраивают, требуют соединений на стороне приложения, а схема, которую обеспечивает только чтение кода, накапливает варианты. Понимание того, где ложится эта цена, превращает выбор семейства из предпочтения в суждение.
Что в этом треке
- Документы и коллекции (05-backend-data/18-mongodb/01-documents-and-collections) — модель данных и её отличие от таблиц и строк.
- Проектирование схемы в хранилище без схемы (05-backend-data/18-mongodb/02-schema-design-in-a-schemaless-store) — встраивание, ссылки и удержание формы под контролем.
Предварительные требования
- NoSQL (05-backend-data/13-nosql)
Что читать дальше
- NoSQL (05-backend-data/13-nosql) — семейство, к которому относится это хранилище, поэтому читайте его первым.
- Семейства нереляционных хранилищ (05-backend-data/13-nosql/02-the-families-of-non-relational-stores) — как гарантии этого хранилища соотносятся с остальными.
- Кэширование (Redis) (05-backend-data/16-caching-redis) — хранилище в памяти, часто используемое вместе с ним.