Встречается на собеседованиях • сегодня

В чём разница между JSONField в PostgreSQL и хранением данных в MongoDB

PostgreSQL JSONField и MongoDB оба хранят JSON-данные, но есть ключевые различия:

  1. Тип базы данных
    PostgreSQL — реляционная СУБД с поддержкой JSON как доп. типа данных.
    MongoDB — документоориентированная NoSQL, где JSON (BSON) — основная модель.

  2. Запросы
    В PostgreSQL JSON-запросы (->, ->>, jsonb_path_query) работают в SQL-контексте.
    В MongoDB запросы нативно JSON-ориентированы (find({"key": "value"})).

  1. Индексы
    В PostgreSQL можно индексировать JSON-поля (GIN-индексы для jsonb).
    В MongoDB индексы создаются напрямую по полям документов.

  2. Пример

    python
    # PostgreSQL (Django)
    from django.db import models
    class Product(models.Model):
        data = models.JSONField()
    
    # MongoDB (PyMongo)
    from pymongo import MongoClient
    db = MongoClient().test_db
    db.products.insert_one({"name": "Laptop", "specs": {"RAM": 16}})

Выбор:
PostgreSQL подходит, если JSON — часть реляционной модели. MongoDB — если нужна гибкость схемы и работа с иерархическими данными.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы