MongoDB
MongoDB | |
---|---|
![]() | |
![]() Подключение к MongoDB Shell | |
Тип | документоориентированная СУБД |
Разработчик |
MongoDB |
Написана на | C++, C и JavaScript |
Операционные системы | Linux, macOS, Windows и OpenBSD |
Первый выпуск | 2009 |
Последняя версия | |
Репозиторий | github.com/mongodb/mongo |
Состояние | Активное |
Лицензия |
Server Side Public License ( Apache License (драйверы) |
Сайт | mongodb.com (англ.) |
![]() |
MongoDB —
Возможности
Система поддерживает ad-hoc-запросы: они могут возвращать конкретные поля документов и пользовательские JavaScript-функции. Поддерживается поиск по регулярным выражениям. Также можно настроить запрос на возвращение случайного набора результатов[2].
Имеется поддержка индексов.
Система может работать с набором реплик[3], то есть содержать две или более копии данных на различных узлах. Каждый экземпляр набора реплик может в любой момент выступать в роли основной или вспомогательной реплики. Все операции записи и чтения по умолчанию осуществляются с основной репликой. Вспомогательные реплики поддерживают в актуальном состоянии копии данных. В случае, когда основная реплика дает сбой, набор реплик проводит выбор, которая из реплик должна стать основной. Второстепенные реплики могут дополнительно являться источником для операций чтения.
Система
Система может быть использована в качестве файлового хранилища с балансировкой нагрузки и репликацией данных (функция Grid File System[4]; поставляется вместе с драйверами MongoDB). Предоставляются программные средства для работы с файлами и их содержимым. GridFS используется в плагинах для Nginx[5] и lighttpd[6]. GridFS разделяет файл на части и хранит каждую часть как отдельный документ[7].
Может работать в соответствии с парадигмой
$lookup
для связки документов при выгрузке и статистические операции такие как среднеквадратическое отклонениеПоддерживается JavaScript в запросах, функциях агрегации (например, в MapReduce).
Поддерживаются коллекции с фиксированным размером. Такие коллекции сохраняют порядок вставки и по достижении заданного размера ведут себя как кольцевой буфер.
В июне 2018 года (в версии 4.0) добавлена поддержка транзакций, удовлетворяющих требованиям ACID[8].

Есть официальные драйверы для основных языков программирования (
). Существует также большое количество неофициальных или поддерживаемых сообществом драйверов для других языков программирования и фреймворков.Основным интерфейсом к базе данных была командная оболочка mongo. С версии MongoDB 3.2 в качестве графической оболочки поставляется «MongoDB Compass». Существуют продукты и сторонние проекты, которые предлагают инструменты с
Лицензирование
MongoDB изначально выходила под лицензией GNU Affero General Public версии 3. Языковые драйверы доступны под лицензией Apache. MongoDB можно бесплатно получить по общедоступной лицензии Affero (AGPL) GNU. В октябре 2018 года компания-разработчик объявила о переходе к более жёсткой по сравнению с AGPL
Кроме того, компания MongoDB выпускает коммерческую версию СУБД, включающую дополнительные функции (например, интеграцию с SASL, LDAP, Kerberos, SNMP), инструменты управления, мониторинг и резервное копирование, а также поддержку.
Варианты использования
MongoDB подходит для следующих применений:
- регистрация и хранение информации о событиях;
- системы управления документами и контентом;
- электронная коммерция;
- игры;
- данные мониторинга, датчиков;
- мобильные приложения;
- хранилище операционных данных веб-страниц (например, хранение комментариев, рейтингов, профилей пользователей, сеансы пользователей).
Компания
Компания 10gen начала разработку MongoDB в 2007 году как компонент планируемой платформы в качестве сервисного продукта. В 2009 году компания перешла на модель разработки продуктов с открытым исходным кодом, предлагая коммерческую поддержку и другие услуги. 27 августа 2013 года 10gen изменила свое название на MongoDB, Inc.
20 октября 2017 года MongoDB стала публичной компанией, зарегистрированной на NASDAQ с тикером MDB
.
10 марта 2022 года MongoDB предупредила своих пользователей в России и Белоруссии, что их данные, которые хранятся на платформе MongoDB Atlas (облачный вариант базы, поддерживаемый AWS, Microsoft Azure, и Google Cloud Platform), будут уничтожены[12].
Инструменты
Для управления и администрирования системы базы данных могут быть установлены следующие команды:
- mongo — интерактивная оболочка, которая позволяет разработчикам и администраторам просматривать, вставлять, удалять и обновлять данные в своей базе данных, также позволяет настроить репликацию, сегментирование, отключить узлы, выполнить JavaScript или любые другие запросы к базе данных;
- mongostat — инструмент командной строки, который суммирует список статистических данных для исполняемого экземпляра MongoDB, это позволяет визуализировать количество вставок, обновлений, удалений, запросов и команд, а также ресурсопотребление экземпляра;
- mongotop — инструмент, который предоставляет метод для отслеживания времени, которое считывает или записывает данные в экземпляре. Он также обеспечивает статистику на уровне каждой коллекции;
- mongosniff — инструмент, обеспечивающий перехват, сохранение и последующее воспроизведение команд, посылаемых в MongoDB;
- mongoimport и mongoexport — средства импорта и экспорта из JSON, CSV или TSV, поддерживается ряд других форматов;
- mongodump и mongorestore — инструменты создания резервной копии и восстановления базы данных из неё.
Примечания
- ↑ 8.0 Changelog - MongoDB Manual v8.0
- ↑ MongoDB Find Command . Дата обращения: 9 марта 2017. Архивировано 18 октября 2016 года.
- ↑ MongoDB. Introduction to Replication . MongoDB. Дата обращения: 9 марта 2017. Архивировано 11 апреля 2016 года.
- ↑ MongoDB. GridFS article on MongoDB Developer's Manual . MongoDB. Дата обращения: 9 марта 2017. Архивировано 17 января 2013 года.
- ↑ NGINX plugin for MongoDB source code . GitHub. Дата обращения: 9 марта 2017. Архивировано 11 апреля 2016 года.
- ↑ lighttpd plugin for MongoDB source code . Bitbucket. Дата обращения: 9 марта 2017. Архивировано из оригинала 7 августа 2011 года.
- ↑ Malick Md. MongoDB overview . Expertstown. Дата обращения: 9 марта 2017. Архивировано 5 марта 2014 года.
- ↑ Transactions (амер. англ.). MongoDB. Дата обращения: 12 декабря 2018. Архивировано 18 декабря 2018 года.
- ↑ mongodb/mongo (англ.). GitHub. Дата обращения: 19 октября 2018. Архивировано 16 сентября 2020 года.
- ↑ MongoDB Issues New Server Side Public License for MongoDB Community Server. MongoDB (англ.). 16 октября 2018. Архивировано 16 октября 2018. Дата обращения: 19 октября 2018.
- opennet.ru. Дата обращения: 19 октября 2018. Архивировано20 октября 2018 года.
- ↑ MongoDB уничтожит все данные Россиян и Белорусов Архивная копия от 11 марта 2022 на Wayback Machine // SecurityLab.ru
Литература
- Эрик Редмонд, Джим. Р. Уилсон. Семь баз данных за семь недель. Введение в современные базы данных и идеологию NoSQL = MongoDB in Action. — ДМК Пресс, 2013. — 384 с. — ISBN 978-5-94074-866-3.
- Кайл Бэнкер. MongoDB в действии = MongoDB in Action. — ДМК Пресс, 2014. — 394 с. — ISBN 978-5-97060-057-3.
- Kristina Chodorow. MongoDB: The Definitive Guide, 2nd Edition. — O’Reilly, 2013. — 432 с. — ISBN 978-1-4493-4468-9.
- David Hows, Peter Membrey, Eelco Plugge, Tim Hawkins. The Definitive Guide to MongoDB: A complete guide to dealing with Big Data using MongoDB, Third Edition. — Apress, 2015. — 376 с. — ISBN 978-1-4842-1183-0.
- Eelco Plugge, Peter Membrey, Tim Hawkins. The Definitive Guide to MongoDB: The NoSQL Database for Cloud and Desktop Computing. — Apress, 2010. — 327 с. — ISBN 1-4302-3051-7.
- Steve Hoberman. Data Modeling for MongoDB. — Technics Publications, 2014. — 226 с. — ISBN 978-1-935504-70-2.
- Mitch Pirtle. MongoDB for Web Development. — Addison-Wesley Professional, 2011. — С. 360. — ISBN 9780321705334.
Ссылки
- Официальный сайт Архивная копия от 22 января 2014 на Wayback Machine (англ.)
- Официальная документация Архивная копия от 10 ноября 2017 на Wayback Machine (англ.)
- Spring MVC 3: Using a Document-Oriented Database — MongoDB Архивная копия от 22 сентября 2012 на Wayback Machine
В статье есть список источников, но не хватает сносок. |