Почему MongoDB считается NoSQL базой данных

«Почему MongoDB считается NoSQL базой данных» — вопрос из категории Базы данных, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

MongoDB классифицируется как NoSQL база данных, поскольку она не следует реляционной модели. Основные отличия:

  • Документо-ориентированная модель: Данные хранятся в гибких документах BSON (аналог JSON), которые могут иметь различную структуру даже в одной коллекции.
  • Отсутствие фиксированной схемы: Поля могут добавляться динамически, что упрощает итеративную разработку.
  • Отсутствие JOIN операций: Вместо SQL-соединений используются вложенные документы или ссылки ($lookup для агрегаций, но это не классический JOIN).
  • Горизонтальное масштабирование (шардирование): Данные распределяются по кластеру, что является ключевым для NoSQL-систем, рассчитанных на большие объемы и высокую нагрузку.

Пример документа:

{
  "_id": ObjectId("507f191e810c19729de860ea"),
  "username": "dev_user",
  "log_events": [
    { "type": "login", "timestamp": ISODate("2023-10-05T14:48:00Z") },
    { "type": "api_call", "endpoint": "/deploy", "status": 200 }
  ]
}

В DevOps-контексте MongoDB часто используется для хранения неструктурированных логов, метрик конфигураций или данных мониторинга, где строгая схема неудобна.