MongoDB
Один из продуктов NoSQL, который впечатляет своим удобством использования и легкостью понимания ее базовой архитектуры
Нереляционная база данных, разработанная для работы с большими объёмами данных и обеспечивающая высокую гибкость в управлении ими.
Она использует схему хранения в формате BSON, что даёт возможность динамически изменять структуру данных в зависимости от потребностей приложения. Ключевая особенность — отсутствие строгой схемы данных. Это означает, что каждая запись в коллекции может иметь различную структуру полей. В отличие от СУБД, где все записи, хранимые в таблице, должны быть ограничены схемой таблицы, документы любой структуры могут храниться в одном хранилище.
Возможности
Документно‑ориентированная модель
MongoDB сохраняет данные в BSON‑документах, которые могут содержать вложенные массивы и объекты. Такая структура позволяет гибко моделировать данные, избегая излишней нормализации и обеспечивая быстрый доступ к полям внутри документов.
Масштабируемость «out‑of‑the‑box»
Автоматически распределяет коллекции по нескольким узлам кластера. Это обеспечивает горизонтальное масштабирование, позволяя обрабатывать миллиарды записей без изменения схемы.
Полнотекстовый поиск и агрегации
Встроенный агрегатный фреймворк поддерживает сложные операции group, lookup, facet и т.д., а также полнотекстовый поиск через индексы. Это делает MongoDB пригодным для аналитики и поиска в больших объёмах данных.
Поддержка ACID‑транзакций
Начиная с версии 4.0, MongoDB реализует многодокументные транзакции, гарантируя целостность данных в распределённой среде. Это особенно важно для бизнес‑приложений, где требуется атомарность операций.
Мощная система индексации
Помимо простых и уникальных индексов MongoDB поддерживает композитные, геопространственные (2dsphere), текстовые и индексы на основе хешей, что позволяет ускорить поиск по любым критериям.
Архитектура
Серверный процесс mongod
Основной исполняемый файл отвечает за хранение данных, выполнение запросов и репликацию. Он запускается в режиме демона, обрабатывая соединения от клиентов через протокол MongoDB Wire Protocol.
Репликационные наборы (Replica Sets)
Конфигурация, состоящая из основной ноды и нескольких вторичных, обеспечивает высокую доступность и автоматическое восстановление после отказа. Репликация реализуется через журнал команд (oplog).
Шардирование и конфигурационные серверы
Шард‑кластер состоит из нескольких shard‑узлов, конфиг‑серверов (обычно 3) и роутера mongos. Конфигурационные серверы хранят метаданные о распределении данных, а mongos отвечает за маршрутизацию запросов к соответствующим shard‑у.
Инструменты мониторинга и управления
В составе MongoDB Community Server поставляются mongostat, mongotop и MongoDB Compass. Эти утилиты позволяют отслеживать производительность, нагрузку и состояние кластера без сторонних средств.
Модульная расширяемость
Open‑Source версия поддерживает динамическое подключение внешних плагинов через mongod‑параметры, а также предоставляет API для интеграции с внешними системами.
