Когда MongoDB
MongoDB выигрывает в задачах где схема данных гибкая или часто меняется.
- ◆Схема меняется — добавить поле в документ одна строка, не нужна миграция
- ◆Быстрые прототипы — Atlas запускается за 5 минут, сразу пишешь данные
- ◆Вложенные данные — заказ с позициями, пользователь с историей хранятся как один документ
- ◆Боты для рассылок, поддержки, каталогов — гибкие данные, быстрые операции
Пример: бот для записи к специалистам. Каждый специалист — документ с вложенным расписанием на 30 дней. В MongoDB это естественно, в PostgreSQL потребует 3 таблицы и JOIN.
Когда PostgreSQL
- ◆Финансовые данные — транзакции, ACID, атомарность. Потеря денег критична
- ◆Сложные связи — CRM с клиентами, сделками, задачами и менеджерами
- ◆Аналитика — GROUP BY, WINDOW FUNCTIONS, CTE быстро и выразительно
- ◆Строгая типизация важна — не хочешь получить число там где ждёшь строку
Мой принцип выбора
| Задача | БД | Причина |
|---|---|---|
| Бот рассылок | MongoDB | Гибкие сегменты, быстрые writes |
| Бот поддержки | MongoDB | Гибкие диалоги, вложенный контекст |
| Бот с оплатой | PostgreSQL | Транзакции, ACID |
| CRM-бот | PostgreSQL | Связи: клиент ↔ сделки ↔ задачи |
| MVP за 5 дней | MongoDB | Скорость старта |
Не знаешь → MongoDB, мигрируй позже если нужно. Стоимость миграции обычно ниже стоимости преждевременной оптимизации.
Нужно что-то похожее?
Обсудим вашу задачу — отвечу в течение часа.