Какую структуру данных и в каком формате хранит MongoDB?

«Какую структуру данных и в каком формате хранит MongoDB?» — вопрос из категории Базы данных, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

MongoDB хранит данные как документы в формате BSON (Binary JSON), которые организованы в коллекции.

Ключевые элементы:

  • Документ: Базовая единица данных, аналогичная строке в SQL, но с гибкой схемой. Документы в одной коллекции могут иметь разный набор полей.
  • Коллекция: Группа документов (аналог таблицы в реляционной БД).
  • База данных: Контейнер для коллекций.

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

{
  "_id": ObjectId("507f1f77bcf86cd799439011"),
  "name": "John Doe",
  "age": 30,
  "address": {
    "street": "123 Main St",
    "city": "New York"
  },
  "hobbies": ["reading", "hiking"]
}

Основные особенности:

  • Поле _id является обязательным и служит первичным ключом (автоматически генерируется, если не указано).
  • Поддерживает сложные структуры: вложенные документы и массивы.
  • Динамическая схема позволяет изменять структуру документов без миграций базы данных.