← К оглавлению занятия

📖 Теория

📁 Блок: MongoDB / NoSQL / Документы ⏱️ Время изучения: ~90 мин 🎯 Сложность: Начальная

⚡ Кратко: суть занятия

MongoDB — документоориентированная база данных: данные хранятся не в строках таблиц, а в документах и коллекциях.

Источник противопоставляет MongoDB реляционным СУБД: нет таблиц с фиксированными столбцами, информация организована как документы.

Документ — набор пар ключ-значение, где значениями могут быть строки, числа, логические значения, массивы и вложенные документы.

Коллекция в MongoDB похожа на таблицу по роли контейнера, но может хранить документы разной структуры.

Каждый документ имеет уникальный идентификатор _id; если его не задать, MongoDB создаёт его автоматически.

Для управления и администрирования в курсе используется MongoDB Compass.

Топ-3 ошибки: ждать жёсткой схемы как в SQL, путать коллекцию с документом, удалять или дублировать _id.

MongoDB как база документов

Источник определяет MongoDB как систему управления базами данных с документоориентированной моделью. Она может быть установлена локально или размещена в облаке.

В реляционных базах данные организованы в таблицы и строки. В MongoDB центральные понятия — документ и коллекция.

Реляционная модельMongoDBСмысл
База данныхБаза данныхКонтейнер верхнего уровня
ТаблицаКоллекцияНабор документов
СтрокаДокументОдна запись/объект
СтолбецПолеПара ключ-значение внутри документа

Свойства из источника

  • Кроссплатформенность: продукт устанавливается на разные операционные системы.
  • Формат хранения: BSON, то есть Binary JavaScript Object Notation.
  • Документы: хранят ключи и значения.
  • Коллекции: содержат наборы документов.
  • Репликация, индексация, GridFS, специальные запросы, балансировка нагрузки и облачное решение.
Проверить по документации. Фраза источника «не требуется отдельный язык запросов» отражает учебное противопоставление SQL. В современной документации MongoDB используется термин MongoDB Query API; синтаксис запросов нужно проверять по официальной документации.

Документ и _id

Документ хранит пары ключ-значение. Внутри одной коллекции у документа должен быть уникальный идентификатор _id. Источник подчёркивает, что он создаётся автоматически, но разработчик может задать его явно.