Что такое MongoDB?
MongoDB — это документо-ориентированная база данных, которая хранит данные в документах, подобных JSON.
Философия проектирования MongoDB заключается в удовлетворении требований больших объёмов данных, высокой производительности и гибкости.
MongoDB использует коллекции для организации документов, и каждый документ состоит из пар ключ-значение.
- База данных: Контейнер для хранения данных, аналогичный базе данных в реляционной базе данных.
- Коллекция: Коллекция внутри базы данных, аналогичная таблице в реляционной базе данных.
- Документ: Запись данных в коллекции, аналогичная строке в реляционной базе данных, хранящаяся в формате BSON.
MongoDB хранит данные в виде документа, и структура данных состоит из пар ключ-значение. Документы похожи на объекты JSON; значения полей могут содержать другие документы, массивы и массивы документов:
Ключевые особенности
-
Документо-ориентированное хранилище: MongoDB — это документо-ориентированная база данных, которая хранит данные в формате, подобном JSON, что делает структуру данных более гибкой и богатой.
-
Оптимизация индексов для запросов: MongoDB позволяет пользователям создавать индексы по любому атрибуту объекта, например
FirstNameиAddress, тем самым повышая эффективность запросов и производительность сортировки. -
Зеркалирование данных и масштабируемость: Создавая реплики данных локально или по сети, MongoDB обеспечивает мощное резервирование данных и масштабируемость.
-
Горизонтальное масштабирование и шардированиеПри возросшей нагрузке MongoDB распределяет данные по другим узлам компьютерной сети с помощью технологии шардирования для достижения горизонтального масштабирования.
-
Мощный язык запросов: MongoDB использует синтаксис запросов и поддерживает сложные запросы, включая запросы к вложенным объектам и массивам.
-
ОбновленияИспользуя
update(), MongoDB может заменить весь документ или обновить указанные поля данных, обеспечивая гибкий способ обновления данных. -
Пакетная обработка MapReduce: Функция MapReduce в MongoDB предназначена для крупномасштабной обработки данных и операций агрегирования. Посредством
emit(key, value)вызова функции Map и логической обработки функции Reduce достигается эффективное агрегирование. -
Скриптинг Map: Функции Map и Reduce написаны на JavaScript и могут выполняться в MongoDB с помощью
db.runCommandилиmapreduceкоманды. -
Хранение больших файлов GridFS: GridFS — встроенная функция MongoDB для хранения и извлечения файлов, размер которых превышает ограничение размера BSON-документа, например изображений и видео.
-
Выполнение скриптов на стороне сервера: MongoDB позволяет выполнять JavaScript-скрипты на сервере, предоставляя возможность выполнения непосредственно на сервере или сохранения определений функций для последующего использования.
-
Поддержка нескольких языков: MongoDB обеспечивает поддержку нескольких языков программирования, включая, но не ограничиваясь RUBY, PYTHON, JAVA, C++, PHP и C#.
-
Простая установка: процесс установки MongoDB прост и интуитивно понятен, что позволяет пользователям быстро развернуть и использовать её.
История
| Version | Дата выпуска | Описание возможностей |
|---|---|---|
| 1.0 | Август 2009 | Больше индексов на коллекцию Более быстрое создание индексов |
| 1.2 | Декабрь 2009 | Map/Reduce Хранимые функции JavaScript Настраиваемое время fsync Несколько незначительных функций и исправлений |
| 1.4 | Март 2010 | Шардинг, готовый к промышленной эксплуатации |
| 1.6 | Август 2010 | Наборы реплик Поддержка IPv6 |
| 1.8 | Март 2011 | |
| 2.0 | Сентябрь 2011 | |
| 2.2 | Август 2012 | Расширенная поддержка геопространственных данных Переход на движок JavaScript V8 |
| 2.4 | Март 2013 | Улучшения безопасности Текстовый поиск (бета) Хеш-индексы Улучшения агрегации Интеграция текстового поиска |
| 2.6 | 8 апреля 2014 | Улучшения механизма запросов Новый протокол операций записи Улучшения безопасности Поддержка механизма хранения WiredTiger API подключаемых механизмов хранения |
| 3.0 | 3 марта 2015 | Аутентификация SCRAM-SHA-1 Улучшенная функция explain MongoDB Ops Manager Улучшения выборов в наборе реплик WiredTiger — механизм хранения по умолчанию |
| 3.2 | 8 декабря 2015 | Серверы конфигурации как наборы реплик Гарантия чтения Переход с V8 на SpiderMonkey Линеаризуемая гарантия чтения |
| 3.4 | 29 ноября 2016 | Представления Правила сортировки |
| 3.6 | Ноябрь 2017 | |
| 4.0 | июнь 2018 | Транзакции |
| 4.2 | Август 2019 | |
| 4.4 | Июль 2020 | |
| 4.4.5 | Апрель 2021 | |
| 4.4.6 | Май 2021 | Ориентированный на будущее версионированный API |
| 5.0 | 13 июля 2021 | Шифрование на уровне полей на стороне клиента Решардинг в реальном времени Поддержка временных рядов |
| 6.0 | Июль 2022 | |
| 7.0 | 15 августа 2023 |
Скачать MongoDB
Вы можете скачать установочный пакет с официального сайта MongoDB по адресу:https://www.mongodb.com/try/download/community。
MongoDB поддерживает следующие платформы:
Linux: MongoDB поддерживает различные дистрибутивы Linux, включая, помимо прочего, Ubuntu, Debian, CentOS, Red Hat Enterprise Linux (RHEL), Fedora и т. д.
Windows: MongoDB предоставляет официальную версию для операционной системы Windows, которая может работать на Windows Server и настольных операционных системах Windows.
macOS: MongoDB может работать на macOS и предоставляет официальный установщик для macOS.
Docker: MongoDB также может работать как контейнер Docker, что делает развёртывание и управление MongoDB на различных платформах более удобным.

Поддержка языков
MongoDB имеет следующие официальные драйверы:
Инструменты MongoDB
Для MongoDB доступно несколько инструментов управления.
Мониторинг
MongoDB предоставляет инструмент мониторинга сети и системы Munin, который применяется как плагин в MongoDB.
Gangila — это высокопроизводительный инструмент системного мониторинга для MongoDB, который применяется как плагин в MongoDB.
Cacti — это инструмент с открытым исходным кодом и графическим интерфейсом для просмотра загрузки CPU и использования пропускной способности сети; он также предоставляет плагин для мониторинга MongoDB.
Графический интерфейс
- Fang of Mongo — веб-приложение, созданное с помощью Django и jQuery.
- Futon4Mongo — MongoDB-клон веб-интерфейса Futon от CouchDB.
- Mongo3 — написан на Ruby.
- MongoHub — приложение для OSX.
- Opricot – консоль MongoDB, работающая в браузере и написанная на PHP.
- Database Master — инструмент управления MongoDB для Windows
- RockMongo — лучший инструмент управления MongoDB на языке PHP, лёгкий и поддерживающий множество языков.
Сценарии использования MongoDB
Ниже перечислены некоторые реальные примеры применения MongoDB компаниями:
- Craigslist использует MongoDB для архивирования миллиардов записей.
- FourSquare, сайт геосоциальной сети, использует MongoDB на серверах Amazon EC2 для обмена данными.
- Shutterfly, интернет-сервис социальных и персональных публикаций, использует MongoDB для различных задач постоянного хранения данных.
- bit.ly, веб-сервис сокращения URL-адресов, использует MongoDB для хранения собственных данных.
- spike.com, аффилированная компания MTV Networks, использует MongoDB.
- Intuit, поставщик программного обеспечения и услуг для малого бизнеса и частных лиц, использует MongoDB для отслеживания данных пользователей малого бизнеса.
- sourceforge.net, ресурсный сайт для бесплатного поиска, создания и публикации программного обеспечения с открытым исходным кодом, использует MongoDB для хранения данных на бэкенде.
- etsy.com, сайт для покупки и продажи товаров ручной работы, использует MongoDB.
- The New York Times, один из ведущих онлайн-новостных порталов, использует MongoDB.
- CERN, известный исследовательский институт физики элементарных частиц, использует MongoDB для данных с Большого адронного коллайдера.