МК

MongoDB

MongoDB — это документная база данных. Вместо таблиц со строгими колонками, как в PostgreSQL, MongoDB хранит данные в виде JSON-документов. Каждый документ может иметь свою структуру: один товар — с 5 полями, другой — с 20. Никаких миграций при добавлении нового поля.

Это удобно, когда структура данных неоднородна или часто меняется. Контент-платформа: у статьи одни поля, у видео — другие, у подкаста — третьи. В реляционной БД пришлось бы городить десяток таблиц или хранить всё в одной с кучей NULL-полей. В MongoDB каждый тип контента — просто документ со своими полями.

MongoDB легко масштабируется горизонтально: добавляете серверы — данные автоматически распределяются между ними (шардирование). Это делает MongoDB популярной для высоконагруженных проектов с большими объёмами данных.

Но у MongoDB есть ограничения: нет полноценных транзакций между коллекциями (хотя с версии 4.0 появилась базовая поддержка), нет JOIN-ов (данные дублируются или запрашиваются несколькими запросами), нет строгой типизации. Для финансовых систем и сложной аналитики PostgreSQL подходит лучше.

Ключевые преимущества

  • Документная БД: данные хранятся в JSON-документах
  • Гибкая схема: не нужны миграции при изменении структуры
  • Горизонтальное масштабирование через шардирование
  • Отличная производительность на чтение при правильной модели
  • Удобна для неоднородных и часто меняющихся данных

Примеры

Контент-платформа: статьи, видео, подкасты — разные структуры в одной коллекции. IoT: датчики отправляют данные с разными полями — MongoDB принимает без миграций. Каталог товаров с разными характеристиками: у телефонов — RAM и экран, у одежды — размер и материал. Агрегация логов и аналитических событий.

Когда это нужно

MongoDB подходит, когда: структура данных неоднородна и часто меняется, нужно хранить JSON-документы «как есть», требуется горизонтальное масштабирование, проект — каталог, CMS, IoT или агрегатор данных. Не подходит для: финансовых систем (нужны транзакции), сложной аналитики (нужны JOIN-ы), проектов со строгими связями между данными.

Связанные термины

Частые вопросы

MongoDB или PostgreSQL — что выбрать?

Для большинства проектов — PostgreSQL: он поддерживает и реляционные данные, и JSON (jsonb). MongoDB выбирайте, если вам принципиально нужно: горизонтальное шардирование из коробки, полностью документная модель, хранение данных без схемы. Если сомневаетесь — начните с PostgreSQL, перейти на MongoDB сложнее, чем наоборот.

MongoDB бесплатная?

Community Edition — бесплатная и open-source. MongoDB Atlas (облачный сервис) имеет бесплатный тариф (512 МБ). Платные тарифы Atlas: от $57/мес. Self-hosted на VPS: бесплатно + стоимость сервера. Для прототипов и MVP бесплатного тарифа Atlas более чем достаточно.

Готовы начать проект?

Расскажите о задаче — мы предложим решение, сроки и стоимость. Первая консультация бесплатна.

30 минут · Бесплатно · Без обязательств