TGViewer
METANIT.COM METANIT.COM @devnull22 · 5.81K subscribers
Post #2125 1.66K
Как работает MongoDB
(продолжение предыдущего поста)

MongoDB был создан из необходимости. Основатели столкнулись с проблемами при создании масштабных веб-приложений с использованием существующих баз данных.
По мере роста интернета, появления всё более динамичных веб-сайтов и приложений, старые инструменты баз данных не справлялись с нагрузкой.
MongoDB был разработан для заполнения этого пробела.

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

MongoDB в основном написан на C++, но использует JavaScript для своей оболочки и Python для некоторых инструментов и драйверов.

📌 Как рабоатет MongoDB
* По своей сути MongoDB — это NoSQL, документоориентированная база данных.
* Традиционные реляционные базы данных хранят данные в таблицах и строках.

Но:
* MongoDB «внутренне» хранит данные в бинарном формате, называемом BSON (Binary JSON).
* BSON — это расширенный набор JSON.
* Он может представлять всё, что может JSON, плюс дополнительные типы данных, такие как даты и бинарные данные.
* BSON более компактен, чем JSON, что уменьшает объём памяти и повышает производительность.
* Такая структура позволяет более естественно представлять реальные объекты и связи между ними.

📌 Разберём архитектуру MongoDB

1. Модель документов
Гибкие, похожие на JSON документы хранят данные, позволяя использовать различные структуры и вложенные объекты.

2. Коллекции
Группы документов, аналогичные таблицам, но без схемы, обеспечивающие гибкую организацию.

3. mongod
Основной процесс, обрабатывающий хранение, запросы и администрирование (основной демон-процесс).

4. mongos (если используется шардирование)
Маршрутизирует запросы в распределённом кластере к правильным разделам данных (соответствующим шардам).

5. Реплика-сеты
Несколько узлов поддерживают копии данных, обеспечивая высокую доступность и отказоустойчивость.

6. Шардирование
Горизонтальное масштабирование путём распределения данных по нескольким серверам для больших наборов данных и высокой нагрузки.

7. Индексы
Структуры данных для ускорения запросов, поддерживающие различные типы для разных шаблонов доступа.

8. WiredTiger
Механизм хранения по умолчанию, оптимизированный для использования памяти и диска с контролем параллелизма.

9. Фреймворк агрегации
Мощный конвейерный фреймворк для сложного анализа и преобразования данных.

10. Язык запросов
Выразительный язык для фильтрации, сортировки, проецирования и агрегации данных.

📌 Некоторые варианты использования
1. Управление контентом.
2. Аналитика в реальном времени.
3. Интернет вещей (IoT).
4. Мобильные приложения.
5. Каталоги продукции.

📌 Проблемы
1. Транзакции
Использует модель «snapshot isolation», которая может иметь последствия для приложений, требующих строгих гарантий ACID.

2. Моделирование данных
Гибкость требует продуманного проектирования.

3. Соединения
MongoDB не поддерживает традиционные SQL-соединения.

4. Операционные затраты
MongoDB может требовать больше операционных знаний.

5. Стоимость
MongoDB может быть дорогим в эксплуатации, особенно при масштабировании.
Telegram METANIT.COM Как работает MongoDB (продолжение в следующем посте)
  • 🔥 5
  • ❤ 3
  • 👏 2
  • 🤮 1
More from @devnull22
  1. Mar 19, 2026Добавил в руководство по JavaScript главу про работу с датами и временем с помощью Tempora…
  2. Mar 19, 2026Роскомнадзор перестал полностью справляться с блокировками в интернете Роскомнадзор (РКН)…
  3. Mar 18, 2026Минцифры опубликовало законопроект о государственном регулировании ИИ. Закон должен начать…
  4. Mar 18, 2026Microsoft призвала разработчиков создавать ИИ-приложения в Electron на Windows 11 Microsof…
  5. Mar 18, 2026Oracle анонсировала проект Detroit, который будет развиваться в составе OpenJDK и нацелен…
  6. Mar 17, 2026Вышла новая версия платформы Java - JDK 26. JDK 26 — краткосрочная версия с поддержкой Pre…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →