Что такое 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 для данных с Большого адронного коллайдера.
Другие расширения