WikiSort.ru - Не сортированное

ПОИСК ПО САЙТУ | о проекте
MongoDB
Тип документоориентированная СУБД
Разработчик MongoDB Inc.[d]
Написана на C++, C and JavaScript
Операционная система Linux, macOS и Microsoft Windows
Первый выпуск 2009
Последняя версия
Тестовая версия 3.5.2[2] (2017-01-26; 753 дня тому назад)
Состояние Active
Лицензия GNU AGPL (СУБД) и Apache License (драйверы)
Сайт mongodb.com
 MongoDB на Викискладе

MongoDB (от англ. humongous — огромный) — документоориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Классифицирована как NoSQL, использует JSON-подобные документы и схему базы данных. Написана на языке C++.

Лицензирование и поддержка

MongoDB можно бесплатно получить по общедоступной лицензии Affero (AGPL) GNU. Драйверы для языков программирования находятся под лицензией Apache. В дополнение к этим лицензиям MongoDB Inc. предлагает коммерческую лицензию для MongoDB, которая включает в себя дополнительные функции (например, интеграция с SASL, LDAP, Kerberos, Simple Network Management Protocol и поиска текста Розетта Лингвистика Platform Basis Technology), инструменты управления, мониторинг и резервное копирование, а также поддержку.

Возможности

Ad hoc запросы

Запросы могут возвращать конкретные поля документов и пользовательские 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 на стороне сервера

JavaScript может использоваться в запросах, функциях аггрегации (например в MapReduce) и отправлен базе для исполнения.

Коллекции с фиксированным размером

MongoDB поддерживает коллекции с фиксированным размером. Такие коллекции сохраняют порядок вставки и по достижении заданного размера ведут себя как кольцевой буфер.

Транзакции

В июне 2018 в версии MongoDB 4.0 добавлена поддержка транзакции ACID[10]

Архитектура

Запись записи в MongoDB с Robomongo 0.8.5.

Доступность языка программирования

У 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

Для управления и администрирования системы базы данных могут быть установлены следующие команды:

Подключение к MongoDB Shell
  • mongo: - интерактивная оболочка, которая позволяет разработчикам и администраторам просматривать, вставлять, удалять и обновлять данные в своей базе данных. Это также позволяет среди других функций репликации данных, настройку осколков, отключить серверы, выполнить JavaScript и все команды, которые могут быть выполнены.
  • mongostat: - инструмент командной строки, который суммирует список статистических данных для исполняемого экземпляра MongoDB. Это позволяет вам визуализировать количество вложений, обновлений, удалений, запросов и команд, но также, сколько памяти используется и как долго база данных была закрыта.
  • mongotop: - это инструмент командной строки, который предоставляет метод для отслеживания времени, которое считывает или записывает данные в экземпляре. Он также обеспечивает статистику на уровне каждой коллекции.
  • mongosniff: - инструмент командной строки, который обеспечивает обнюхивание[что?] в базе данных путем обнюхивания[что?] сетевого трафика в MongoDB и обратно.
  • mongoimport / mongoexport: представляет собой инструмент командной строки , которая облегчает содержание импорта экспорта из JSON, CSV или TSV. Он также может импортировать или экспортировать в другие форматы.
  • mongodump / mongorestore: - инструмент командной строки для создания двоичного образа содержимого базы данных. Эти команды используются для стратегии резервного копирования в MongoDB.

Поддерживаемые языки программирования

У MongoDB есть официальные драйверы для следующих языков программирования:

  • С
  • C ++
  • C # / .NET
  • Erlang
  • Go
  • Haskell
  • J #
  • Java
  • JavaScript
  • Lisp
  • Node.js
  • Perl
  • PHP
  • Python
  • Ruby
  • Delphi
  • Scala

Сотрудничество

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]. Это обеспечивает наличие актуальных данных при выходе из строя одной из СУБД.

Примечания

Литература

  • Кайл Бэнкер. MongoDB в действии = MongoDB in Action. — ДМК Пресс, 2014. — 394 с. ISBN 978-5-97060-057-3.
  • Kristina Chodorow. MongoDB: The Definitive Guide, 2nd Edition. — O'Reilly Media, Inc., 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.
  • Mithun Satheesh; Bruno Joseph D'mello; Jason Krol. Web Development with MongoDB and NodeJS - Second Edition. — Packt Publishing, 2015. — 300 с. ISBN 978-1-78528-745-9.
  • 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.

Ссылки

Сайты и порталы
Прочее

Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".

Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.

Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .




Текст в блоке "Читать" взят с сайта "Википедия" и доступен по лицензии Creative Commons Attribution-ShareAlike; в отдельных случаях могут действовать дополнительные условия.

Другой контент может иметь иную лицензию. Перед использованием материалов сайта WikiSort.ru внимательно изучите правила лицензирования конкретных элементов наполнения сайта.

2019-2024
WikiSort.ru - проект по пересортировке и дополнению контента Википедии