Вопрос проверяет понимание различий между документоориентированной и реляционной СУБД, чтобы осознанно выбирать хранилище под конкретную задачу.
PostgreSQL и MongoDB решают разные классы задач, и выбор между ними определяется тем, как устроены ваши данные и какие гарантии вам нужны. PostgreSQL — это классическая реляционная база с таблицами, строгой схемой, внешними ключами и полноценными транзакциями ACID. MongoDB — документоориентированная база, где данные хранятся в виде BSON-документов, похожих на JSON, и схема может быть гибкой.
CREATE TABLE users (id SERIAL PRIMARY KEY, name TEXT);
CREATE TABLE orders (id SERIAL PRIMARY KEY, user_id INT REFERENCES users(id), total NUMERIC);
SELECT u.name, SUM(o.total)
FROM users u JOIN orders o ON o.user_id = u.id
GROUP BY u.name;db.orders.insertOne({
user: { name: "Alice" },
items: [{ sku: "A1", qty: 2 }, { sku: "B2", qty: 1 }],
total: 150
});
db.orders.find({ "items.sku": "A1" });Важно помнить: MongoDB тоже поддерживает транзакции (с версии 4.0 для реплика-сетов), а PostgreSQL умеет хранить JSONB и работать с полуструктурированными данными. Поэтому выбор не всегда бинарный — иногда гибридный подход оправдан.
Итог: PostgreSQL выбирайте для связанных, транзакционных и аналитических данных со строгой схемой; MongoDB — для гибких документов, быстрого прототипирования и горизонтального масштабирования.