Получите бесплатно 4 курса для лёгкого старта работы в IT
Получить курсы бесплатно
ГлавнаяБлогMongoDB: преимущества и особенности
MongoDB
2 487
Время чтения: 13 минут

MongoDB: преимущества и особенности

2 487
Время чтения: 13 минут
Сохранить статью:
Сохранить статью:

Что это такое? MongoDB входит в топ-5 востребованных СУБД, гарантируя безопасность, доступность и масштабируемость. Относится к документированным системам управления, в которых для хранения используется JSON-формат.

На что обратить внимание? Главное отличие СУБД такого типа в том, что она хранит неструктурированные данные. Информация представлена в виде «поле-значение» и может содержать в себе что угодно: адреса, даты или документы.

В статье рассказывается:

  1. Устройство MongoDB
  2. Плюсы и минусы MongoDB
  3. Отличительные черты MongoDB
  4. Установка и настройка MongoDB
  5. Часто задаваемые вопросы о MongoDB
  6. Пройди тест и узнай, какая сфера тебе подходит:
    айти, дизайн или маркетинг.
    Бесплатно от Geekbrains

Устройство MongoDB

MongoDB представляет собой документоориентированную нереляционную СУБД. Она распространяется по лицензии SSPL и имеет открытый исходный код.

Разработкой MongoDB занимались специалисты высочайшего уровня. К примеру, они являются основателями компании DoubleClick, которая специализируется на интернет-рекламе. Скорость показа DoubleClick достигала 400 000 объявлений в секунду, что было просто немыслимо в те времена.

Устройство MongoDB
Устройство MongoDB

Компания была продана Google в 2005 году. После этого команда разработчиков смогла сосредоточиться на новом проекте. В то время базы данных не имели четкой структуры. Информационные фрагменты, которые в них хранились, не были никак между собой связаны. Таким образом, базы были недостаточно гибкими и масштабируемыми. Разработчики создали фирму 10gen, которая затем была названа MongoDB Inc.

Система постоянно совершенствовалась. На данный момент установочные файлы и инструменты для работы с MongoDB 7.0.0 размещены на официальном сайте компании. Их можно скачать абсолютно бесплатно.

Узнай, какие ИТ - профессии
входят в ТОП-30 с доходом
от 210 000 ₽/мес
Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
Команда GeekBrains совместно с международными специалистами по развитию карьеры подготовили материалы, которые помогут вам начать путь к профессии мечты.
Подборка содержит только самые востребованные и высокооплачиваемые специальности и направления в IT-сфере. 86% наших учеников с помощью данных материалов определились с карьерной целью на ближайшее будущее!

Скачивайте и используйте уже сегодня:

Павел Симонов - исполнительный директор Geekbrains
Павел Симонов
Исполнительный директор Geekbrains
pdf иконка

Топ-30 самых востребованных и высокооплачиваемых профессий 2023

Поможет разобраться в актуальной ситуации на рынке труда

doc иконка

Подборка 50+ бесплатных нейросетей для упрощения работы и увеличения заработка

Только проверенные нейросети с доступом из России и свободным использованием

pdf иконка

ТОП-100 площадок для поиска работы от GeekBrains

Список проверенных ресурсов реальных вакансий с доходом от 210 000 ₽

pdf 3,7mb
doc 1,7mb
Уже скачали 27971 pdf иконка

В чем же отличие MongoDB от обычных реляционных баз данных? Последние имеют жестко заданную структуру, которую сложно изменить. В таких базах информация хранится в виде взаимосвязанных таблиц, строки каждой из которых имеют один и тот же набор полей. При этом обработка данных осуществляется при помощи запросов на языке SQL.

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

MongoDB отличается тем, что в этой системе базы состоят из коллекций и документов, которые представляют собой иерархические структуры. Они содержат в себе пары «ключ — значение» (поля).

Можно сказать, что коллекции в этом случае соответствуют таблицам, а документы – строкам. Вся информация отформатирована в BSON — двоичной кодировке JSON-подобных документов. Система поддерживает данные типа Date и двоичных файлов. В JSON таких возможностей нет.

У документов отсутствует какая-то строгая структура. Файлы могут содержать различные наборы полей, которые отличаются друг от друга по типу и количеству. К примеру, документ может выглядеть следующим образом:

test> db.smartphones.find()

[

{

_id: ObjectId(«64084a222063b8732a692d5a»),

model: ‘DEXP G450 One’,

color: ‘Blue’,

screen: ‘5 inch’,

year: ‘2021’

}

]

В качестве значений могут использоваться другие документы, которые называют встроенными.

В реляционных базах данных у строк есть первичный ключ. В MongoDB каждому документу дается уникальный идентификатор (в приведенном примере это _id). Этот идентификатор генерируется автоматически либо устанавливается пользователем.

К примеру, весь этот набор документов входит в коллекцию smartphones:

test> db.smartphones.find()

[

{

_id: ObjectId(«64084a222063b8732a692d5a»),

color: ‘Blue’,

model: ‘DEXP G450 One’,

screen: ‘5 inch’,

year: ‘2021’

},

{

_id: ObjectId(«DEXP»),

model: ‘DEXP G450 One’,

mpn: ‘[MZB0CBJRU]’,

material: ‘plastic’,

year: 2022

},

{

_id: ObjectId(«640f7e114f9f59d9dcda468d»),

model: ‘Xiaomi Redmi Note 10 Pro’,

color: ‘Grey’,

screen: {

diagonal: ‘6.67 inch’,

resolution: ‘2400×1080’,

refresh_rate: ‘120 Hz’

}

}

]

Стоит учесть, что для добавления данных нет необходимости формировать коллекцию. Пользователь может сразу создавать документ.

Плюсы и минусы MongoDB

Рассмотрим основные преимущества MongoDB:

  • Наличие документоориентированной базы. Информация сохраняется в формате документов. Благодаря этому система становится более гибкой и масштабируемой. Ее проще адаптировать к требованиям бизнеса, чем обычные БД.
  • Доступность. СУБД работает со всеми популярными языками программирования. MongoDB можно скачать абсолютно бесплатно.
  • Работа с различными типами данных. Это особенно важно, если компании необходимо обрабатывать большие данные, не встраиваемые в одну структуру и собираемые из разных источников.
  • Репликация. MongoDB обеспечивает высокую доступность за счет набора реплик, который состоит из 2-х и более экземпляров СУБД.
  • Удобство. Система позволяет искать информацию по полям. Кроме того, поддерживаются диапазонные запросы и поиск по регулярным выражениям. Можно также сформировать запросы для возврата конкретных полей в документах.
Дарим скидку от 60%
на курсы от GeekBrains до 05 мая
Уже через 9 месяцев сможете устроиться на работу с доходом от 150 000 рублей
Забронировать скидку
  • Индексация. Пользователь имеет возможность создавать индексы, чтобы улучшить производительность поиска. Причем проиндексировать можно любое поле. Благодаря этому система работает очень быстро.
  • Распределение нагрузки. В этой СУБД применяется концепция шардинга, позволяющая осуществлять горизонтальное масштабирование при помощи разделения данных между несколькими экземплярами баз данных. Система может функционировать сразу на нескольких серверах. При этом нагрузка балансируется. Кроме того, данные могут дублироваться. Все это позволяет системе работать без ошибок даже при возникновении аппаратного сбоя.
  • Применение облака. При желании пользователь может быстро подключиться к БД, которая будет правильно сконфигурирована.
Плюсы и минусы MongoDB
Плюсы и минусы MongoDB

Теперь рассмотрим недостатки MongoDB:

  • Несоответствие требованиям ACID. Эта СУБД не так хорошо соответствует правилам атомарности,согласованности, изолированности и устойчивости, как реляционные базы данных.
  • Сложность транзакций.
  • Отсутствие положений о хранимых процедурах или функциях. Из-за этого пользователь не может реализовать какую-либо бизнес-логику на уровне базы данных. В реляционных БД такая возможность есть.

Перечислим некоторые сферы, в которых не рекомендуется применять MongoDB:

  • Хранение сильно связанных данных.
  • Проекты, в которых заранее установлена модель данных.
  • Транзакционные системы, приложения, для которых необходимы транзакции на уровне базы данных (к примеру, банковские приложения).

Отличительные черты MongoDB

Индексация

Пользователь может индексировать данные внутри базы. Это позволяет системе быстрее находить доступ к нужной информации. Для этого данным присваиваются индексы – объекты, в которых содержатся указатели на определенные сведения. Как правило, это конкретные значения и ссылки на них. Индексы позволяют выполнять поиск по БД. При этом пользователю не нужно перебирать всю информацию.

Репликация

Речь идет о работе с так называемыми репликами, которые представляют собой копии БД. Пользователь может сформировать несколько копий базы данных, которые будут связаны между собой.

При этом дубликаты будут размещены на разных серверах. Одна копия является главной, а все остальные – вспомогательными. Сначала изменения вносятся в главную базу, а затем вспомогательные корректируются автоматически. Таким образом, при потере основной копии пользователь может задействовать любую имеющуюся реплику. Это обеспечивает стабильность СУБД. Причем замена выполняется автоматически.

Сегментирование

Это еще один способ хранения БД на нескольких серверах. В этом случае базы разбиваются на несколько сегментов. Затем они распределяются между разными серверами, что обеспечивает баланс нагрузки на мощности. Администратор может установить принцип сегментирования.

Отличительные черты MongoDB
Отличительные черты MongoDB

Запросы ad hoc

С латинского эта фраза переводятся как «специально для этого». В связи с этим такие запросы иногда называют специальными. Гибкая поддержка разнообразных запросов является одной из важнейших особенностей MongoDB. Система может работать с запросами на поиск по разным полям и функциями JavaScript. Кроме того, СУБД способна возвращать пользовательские функции в ответ на запрос.

Есть поддержка регулярных выражений. Система дает возможность получить в качестве ответа диапазон или случайное значение. При необходимости запросы в MongoDB могут быть очень сложными.

Grid File System (GridFS)

Максимальный размер документа в системе составляет 16 Мб. GridFS позволяет хранить гораздо более массивные данные. Эта технология представляет собой способ сегментирования в пределах документа. Данные большого объема хранятся в двух коллекциях: files и chunks:

  • files представляет собой коллекцию, которая содержит информацию о файлах (имена и метаданные, включающие сведения об объеме и некоторых других характеристиках);
  • chunks — это коллекция MongoDB, в которой содержатся сами файлы, разделенные не несколько мелких сегментов (размер каждого из них, как правило, составляет 256 Кб, однако это значение может меняться).
Только до 6.05
Скачай подборку материалов, чтобы гарантированно найти работу в IT за 14 дней
Список документов:
ТОП-100 площадок для поиска работы от GeekBrains
20 профессий 2023 года, с доходом от 150 000 рублей
Чек-лист «Как успешно пройти собеседование»
Чтобы получить файл, укажите e-mail:
Введите e-mail, чтобы получить доступ к документам
Подтвердите, что вы не робот,
указав номер телефона:
Введите телефон, чтобы получить доступ к документам
Уже скачали 52300

Таким образом, технология GridFS позволяет хранить массивные файлы посредством их разделения на несколько частей, чтобы обойти ограничение в 16 Мб.

Установка и настройка MongoDB

Опишем процесс установки и настройки MongoDB:

  • Загрузить установочный файл MongoDB с официального сайта. Можно выбрать версию, которая позволит решить конкретные задачи, стоящие перед компанией.
  • Установить ПО.
  • Сформировать на сервере каталог для хранения БД и журналов. К примеру, ‘C:/data/db’ для Windows или ‘/data/db’ для Linux или macOS. При этом пользователь, который будет запускать сервер, должен иметь права на запись и чтение в созданных папках.
  • Запустить сервер. Чтобы это сделать, необходимо воспользоваться командной строкой. Нужно перейти в папку, которая содержит установленную программу, и выполнить команду Пользователь может запустить сервер как фоновую службу. Это позволит ему функционировать в автономном режиме и открываться вместе с запуском ОС. Потребуется создать и настроить файл конфигурации MongoDB. После этого необходимо запустить сервер MongoDB с помощью команды mongod —config <путь_к_файлу_конфигурации>.
  • Создать файл конфигурации. С его помощью можно будет установить важные параметры системы. К примеру,порт для подключения к MongoDB, максимальный размер хранилища БД, настройки журналирования и т.д.
Установка и настройка MongoDB
Установка и настройка MongoDB

Ниже представлен пример конфигурационного файла Linux, который может применяться для настройки сервера:

# путь к папке с базами данных

dbpath = /var/lib/mongodb

# ip-адрес и порт для подключения к серверу

bind_ip = 127.0.0.1

port = 27017

# путь к папке с журналами

logpath = /var/log/mongodb/mongod.log

# уровень журналирования

verbosity = 1

# размер журнального файла в мегабайтах

logrotate = 10

# активация аудита запросов к базе для безопасности

auditDestination = file

auditPath = /var/log/mongodb/audit.log

# включение авторизации и конфигурация пользователей

security:

authorization: enabled

keyFile: /etc/mongodb/keyfile

# некоторые настройки для мониторинга сервера

setParameter:

enableLocalhostAuthBypass: false

enableTestCommands: false

Если же пользователь использует Windows, то он может применить схожую конфигурацию. Однако потребуется ввести другие пути к папкам в зависимости от потребностей и настроек ОС. Необходимо скорректировать настройки конфигурации с учетом потребностей конкретного бизнеса. Вся важная информация по этой теме рассмотрена в официальной документации MongoDB.

Установив и настроив СУБД, администратор может приступить к ее применению с использованием имеющихся клиентских библиотек и инструментов разработки.

Часто задаваемые вопросы о MongoDB

Где используется MongoDB?

Эта СУБД применяется в GitHub, SourceForge, Foursquare, Bitly, About.me, MTV, CNN, New York Times, Forbes, Disney, EA и многих других организациях.

На какой платформе можно использовать MongDB?

Система написана на языке программирования C++. Это позволяет портировать ее на различные платформы, включая Windows, Linux, MacOS, Solaris. Кроме того, пользователь может загрузить исходный код и собственноручно скомпилировать СУБД. Однако лучше применять библиотеки с официального веб-сайта.

Что нужно сделать для запуска помощи внутри MongoDB?

Пользователь может получить список команд, введя команду db.help() в клиенте MongoDB.

MongoDB представляет собой NoSQL-систему, которая позволяет работать с коллекциями и документами. Это ПО может использоваться на различных платформах. Данное решение обычно применяется приложениями, которые выполняют обработку информации без жёсткой структуры и связей. Базы данных MongoDB отличаются гибкостью и масштабируемостью. Они позволяют обеспечить быструю и надежную работу ПО.

Оцените статью
Рейтинг: 5
( голосов 1 )
Поделиться статьей
Добавить комментарий

Сортировать:
По дате публикации
По рейтингу
До конца акции осталось
0 дней 00:00:00
Дарим скидку 64% на обучение «Разработчик»
  • Получите новую профессию с гарантией трудоустройства
  • Начните учиться бесплатно, 3 месяца обучения в подарок
Забронировать скидку на обучение
Забрать подарок

Получите подробную стратегию для новичков на 2023 год, как с нуля выйти на доход 200 000 ₽ за 7 месяцев

Подарки от Geekbrains из закрытой базы:
Осталось 17 мест

Поздравляем!
Вы выиграли 4 курса по IT-профессиям.
Дождитесь звонка нашего менеджера для уточнения деталей

Иван Степанин
Иван Степанин печатает ...