Краткое описание

MongoDB — написанная на языке C++ документоориентированная NoSQL система управления базами данных с открытым исходным кодом, не требующая описания схемы таблиц (schemaless).

MongoDB имеет следующие уровни представления данных:

  1. Документ - JSON-объект имеющий произвольное число полей. Поля могуть хранить как простве значение, так к воженные объекты и массивы.
  2. Коллекция (таблица)- однотипные документы хранятся в отдельной коллекции. Документы в коллекции могуть быть проиндекированы. Доступ к докумениту возможен как по ключу, так и по значению полей.
  3. База данных - набор коллекций.

Поддержка MongoDB реализована для большинства языков программирования:

  • C;
  • C++;
  • C#;
  • Java;
  • Node.js;
  • Perl;
  • PHP;
  • Python;
  • Ruby;
  • Scala.

Отличия MongoDB от реляционных баз данных:

  • Не поддерживаются транзации. Атомарность гарантируется только на уровне целого документа, то есть частичного обновления документа произойти не может.
  • Отсутствие механизма «изоляции». Любые данные, которые считываются одним клиентом, могут параллельно изменяться другим клиентом.

Преимущества MongoDB перед реляционными базами:

  • Поддержка горизонтального масштабирования с репликацией данных. Данные могут храниться на произвольном числе серверов. Репликация обеспечивает отказоустойчивость системы с поддержкой функционала при выходе узлов из строя.
  • Формат хранения данных (документ) близок к формату представления данных в языках программирования (объектов) не требуется сложных и дорогостоящих запросов для получения нужного объекта.
  • Поддержка операций MapReduce для массовой параллельной обработки данных.

Ссылки на материалы для изучения

Презентация

Рекомендованные книги

Программное обеспечение

Лабораторные работы и практические задания

Для установки mongoDB удобнее всего воспользоваться docker-образом MongoDB.

Запуск сервера производится командой:

docker run --name mongodb -p 27017:27017 -d mongo

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

docker exec -it mongodb mongo

В качестве практических заданий для лабораторных работ можно использовать Задания к лабораторной работе 5 MongoDB. На данной странице приведены как ссылка на тестовые наборы данных, так и список заданий по выполнению операций на данных наборах данных.

Примеры

Примеры выполнения CRUD и aggregation операций над указанными в предыдущем разделе наборами данных приведены на страницах:

Возможности по сертификации

Перейти