Необходимо проверить качество перевода и привести статью в соответствие со стилистическими правилами Википедии. |
MongoDB | |
---|---|
![]() | |
Тип | документоориентированная СУБД |
Разработчик | MongoDB Inc.[d] |
Написана на | C++, C and JavaScript |
Операционная система | Linux, macOS и Microsoft Windows |
Первый выпуск | 2009 |
Последняя версия | |
Тестовая версия | 3.5.2[2] (2017-01-26 ) |
Состояние | Active |
Лицензия | GNU AGPL (СУБД) и Apache License (драйверы) |
Сайт | mongodb.com |
![]() |
MongoDB (от англ. humongous — огромный) — документоориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Классифицирована как NoSQL, использует JSON-подобные документы и схему базы данных. Написана на языке C++.
MongoDB можно бесплатно получить по общедоступной лицензии Affero (AGPL) GNU. Драйверы для языков программирования находятся под лицензией Apache. В дополнение к этим лицензиям MongoDB Inc. предлагает коммерческую лицензию для MongoDB, которая включает в себя дополнительные функции (например, интеграция с SASL, LDAP, Kerberos, Simple Network Management Protocol и поиска текста Розетта Лингвистика Platform Basis Technology), инструменты управления, мониторинг и резервное копирование, а также поддержку.
Запросы могут возвращать конкретные поля документов и пользовательские JavaScript-функции. Поддерживается поиск по регулярным выражениям. Также можно настроить запрос на возвращение случайного набора результатов.[3]
В MongoDB имеется поддержка индексов.
MongoDB может работать с набором реплик.[4] Набор реплик состоит из двух и более копий данных. Каждый экземпляр набора реплик может в любой момент выступать в роли основной или вспомогательной реплики. Все операции записи и чтения по умолчанию осуществляются с основной репликой. Вспомогательные реплики поддерживают в актуальном состоянии копии данных. В случае, когда основная реплика дает сбой, набор реплик проводит выбор, который из реплик должен стать основным. Второстепенные реплики могут дополнительно являться источником для операций чтения.
MongoDB масштабируется горизонтально, используя шардинг.[5] Пользователь выбирает ключ шарда, который определяет, как данные в коллекции будут распределены. Данные разделятся на диапазоны (в зависимости от ключа шарда) и распределятся по шардам.
MongoDB может быть использован в качестве файлового хранилища с балансировкой нагрузки и репликацией данных.
Эта функция, названная Grid File System,[6] поставляется вместе с драйверами MongoDB. MongoDB предлагает разработчикам функции для работы с файлами и их содержимым. GridFS используется в плагинах для NGINX[7] и lighttpd.[8] GridFS разделяет файл на части и хранит каждую часть как отдельный документ.[9]
Может работать в соответствии с парадигмой MapReduce.
В фреймворке для агрегации есть аналог SQL-инструкции GROUP BY. Операторы агрегации могут быть связаны в конвейер подобно UNIX-конвейрам. Фреймворк так же имеет оператор $lookup для связки документов при выгрузке и статистические операции такие как среднеквадратическое отклонение.
JavaScript может использоваться в запросах, функциях аггрегации (например в MapReduce) и отправлен базе для исполнения.
MongoDB поддерживает коллекции с фиксированным размером. Такие коллекции сохраняют порядок вставки и по достижении заданного размера ведут себя как кольцевой буфер.
В июне 2018 в версии MongoDB 4.0 добавлена поддержка транзакции ACID[10]
У MongoDB есть официальные драйверы для основных языков программирования. Существует также большое количество неофициальных или поддерживаемых сообществом драйверов для других языков программирования и фреймворков.
Основным интерфейсом к базе данных была командная оболочка «mongo». С версии MongoDB 3.2 в качестве графической оболочки поставляется «MongoDB Compass». Существуют продукты и сторонние проекты, которые предлагают инструменты с GUI для администрирования и просмотра данных.
MongoDB доступен бесплатно под лицензией GNU Affero General Public, версия 3. Языковые драйверы доступны под лицензией Apache. Кроме того, MongoDB Inc. предлагает собственные лицензии для MongoDB.
В октябре 2018 года MongoDB Inc. объявила о переходе к более жёсткой по сравнению с AGPL копилефтной лицензии SSPL (Server Side Public License)[11].[12] Вслед за этим было начато изучение новой лицензии представителями Open Source Initiative и Free Software Foundation на предмет соответствия определениям открытого и свободного программного обеспечения[13].
База данных MongoDB подходит для следующих применений:
MongoDB используется для одного или нескольких из этих случаев несколькими компаниями.
Компания программного обеспечения 10gen начала разработку MongoDB в 2007 году как компонент планируемой платформы в качестве сервисного продукта. В 2009 году компания перешла на модель разработки продуктов с открытым исходным кодом, предлагая коммерческую поддержку и другие услуги. 27 августа 2013 года 10gen изменила свое название на MongoDB, Inc.
20 октября 2017 года MongoDB стала публичной компанией, зарегистрированной на NASDAQ в качестве MDB с ценой IPO в размере $24 за акцию.
Для управления и администрирования системы базы данных могут быть установлены следующие команды:
У MongoDB есть официальные драйверы для следующих языков программирования:
6 июня 2012 года компания-разработчик MongoDB 10gen[en] начала длительное сотрудничество с корпорацией Microsoft, предоставив MongoDB её облаку Microsoft Azure. В результате этого партнёрства разработчики получили простой установщик для запуска MongoDB на виртуальных машинах Microsoft Azure. В дополнение к расширению опций облака и хостинга, доступных разработчикам MongoDB, этот шаг объединяет возможности ведущей базы данных NoSQL с технологиями Microsoft, включая Microsoft Azure, .NET и другие технологии с открытым исходным кодом, которые поддерживает Microsoft.
Имеется подробная и качественная документация, большое число примеров и драйверов под популярные языки и платформы Java, JavaScript, Node.js, C++, C#, PHP, Python, Perl, Ruby, Grails&Groovy[14].
Заявляется, что релиз MongoDB 1.0.0 готов к использованию в производстве как в качестве единичного мастера, так и в связках «ведущий — ведомые». Код этого релиза достаточно стабилен и проверен в промышленной эксплуатации на протяжении 1,5 лет[15]. По возможности MongoDB должна быть развернута минимум на двух серверах, используя репликацию Master/Slave[16]. Это обеспечивает наличие актуальных данных при выходе из строя одной из СУБД.
В этой статье или разделе имеется список источников или внешних ссылок, но источники отдельных утверждений остаются неясными из-за отсутствия сносок. |
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .