MongoDB: введение, преимущества и настройка среды

MongoDB  —  кроссплатформенная документоориентированная база данных с открытым ПО и ведущая база данных NoSQL, написанная на C++. Она опирается на концепции коллекций и документов .В данном руководстве объясняются ключевые концепции MongoDB, необходимые для создания и развертывания высоко масштабируемой базы данных с акцентом на производительность.

Целевая аудитория 

Руководство предназначено для специалистов в области ПО, которые ищут легкий способ освоения MongoDB. Обучающий материал раскрывает суть ее концепций. Изучив руководство, вы выходите на средний уровень знаний, что позволяет наметить траекторию своего дальнейшего обучения. 

Необходимые требования

Для работы с руководством требуется начальное представление о базе данных, текстовом редакторе и выполнении программ. Поскольку речь идет о разработке высокопроизводительной базы данных, необходимо знать ключевые концепции реляционной системы управления базами данных (РСУБД). 


Основные термины

База данных

База данных  —  это физический контейнер для коллекций. Каждая БД располагает собственным набором файлов в файловой системе. Как правило, на одном сервере MongoDB находятся несколько баз данных.

Коллекция

Коллекция  —  набор документов MongoDB. Она представляет собой эквивалент таблицы в РСУБД. Коллекция размещается внутри одной базы данных и не требует описания схемы. Документы в коллекции могут иметь разные поля, и, как правило, их объединяет схожее или общее назначение.

Документ

Документ  —  это набор пар ключ-значение. Он обладает динамической схемой  —  документы одной коллекции необязательно должны иметь одинаковый набор полей или структуру, а их общие поля могут содержать разные типы данных.

Ниже представлена сравнительная таблица терминов, принятых в РСУБД и MongoBD:

Пример документа

Данный пример отображает структуру документа сайта блога, которая представляет собой пару ключ-значение, просто разделенную запятой:

{
   _id: ObjectId(7df78ad8902c)
   title: 'MongoDB Overview', 
   description: 'MongoDB is no sql database',
   by: 'Nuances of programming',
   url: 'https://nuancesprog.ru/',
   tags: ['mongodb', 'database', 'NoSQL'],
   likes: 100, 
   comments: [	
      {
         user:'user1',
         message: 'My first comment',
         dateCreated: new Date(2011,1,20,2,15),
         like: 0 
      },
      {
         user:'user2',
         message: 'My second comments',
         dateCreated: new Date(2011,1,25,7,45),
         like: 5
      }
   ]
}

_id—  это 12-ти байтовое шестнадцатеричное число, гарантирующее уникальность каждого документа. Он указывается при вставке документа. Если этого не сделать, MongoDB сама создает такой идентификатор для каждого документа. Первые 4 байта из 12 означают метку времени; следующие 3 байта  —  id компьютера; следующие 2 байта  —  id процесса на сервере MongoBD; и оставшиеся 3 байта являются простым инкрементным значением.


Преимущества MongoDB

Любая реляционная база данных имеет стандартную схему, которая показывает количество таблиц и связи между ними. В MongoDB такие связи не предусмотрены.

Преимущества MongoDB перед РСУБД

  • Отсутствие схемы. MongoDB  —  это документоориентированная база данных, в которой одна коллекция содержит различные документы. Количество полей, содержимое и размер документов могут отличаться.
  • Понятная структура объекта.
  • Отсутствие сложных соединений Join.
  • Расширенные возможности запросов. MongoDB поддерживает динамические запросы документов, используя язык запросов на их основе, практически не уступающий в эффективности SQL.
  • Настройка.
  • Легкость масштабирования.
  • Не требуется преобразование объектов приложения в объекты базы данных.
  • Использует внутреннюю память для хранения (оконного) рабочего набора, обеспечивая ускоренный доступ к данным.

Аргументы в пользу MongoDB

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

Области использования MongoDB

  • Большие данные.
  • Управление и доставка контента.
  • Мобильная и социальная инфраструктуры.
  • Управление пользовательскими данными.
  • Центр управления и обработки данных (Data Hub).

Настройка среды

Установка MongoDB на Windows

Загружаем последнюю версию MongoDB с сайта https://www.mongodb.com/download-center.

Вводим необходимые данные и переходим на вкладку Server. В ней выбираем версию MongoDB, операционную систему и установочный пакет:

Устанавливаем скаченный файл. По умолчанию он будет установлен в каталог C:\Program Files\.

MongoDB предусматривает наличие каталога данных для хранения файлов. По умолчанию он находится в c:\data\db. Для создания данного каталога выполняем команды в командной строке:

C:\>md data
C:\md data\db

Указываем путь dbpath к созданному каталогу в mongod.exe, для чего применяем далее указанные команды.

В командной строке переходим к текущей директории bin в установочном каталоге MongoDB. Допустим, что установочный каталог  —  C:\Program Files\MongoDB:

C:\Users\XYZ>d:cd C:\Program Files\MongoDB\Server\4.2\bin
C:\Program Files\MongoDB\Server\4.2\bin>mongod.exe --dbpath "C:\data"

В консоли появится сообщение об ожидании соединения, что говорит об успешном выполнении процесса mongod.exe.

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

C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe
MongoDB shell version v4.2.1
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("4260beda-f662-4cbe-9bc7-5c1f2242663c") }
MongoDB server version: 4.2.1
>

Как видно, MongoDB успешно установлена и запущена. При следующем ее запуске потребуются только команды:

C:\Program Files\MongoDB\Server\4.2\bin>mongod.exe --dbpath "C:\data"
C:\Program Files\MongoDB\Server\4.2\bin>mongo.exe

Установка MongoDB на Ubuntu

Выполняем данную команду для импорта публичного ключа GPG MongoDB:

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10

Создаем файл /etc/apt/sources.list.d/mongodb.list с помощью команды:

echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' 
| sudo tee /etc/apt/sources.list.d/mongodb.list

Обновляем репозиторий:

sudo apt-get update

Устанавливаем MongoDB:

apt-get install mongodb-10gen = 4.2

В рассмотренном выше процессе установки 2.2.3 является текущей версией MongoDB. Обратите внимание, что всегда необходимо устанавливать последнюю версию.

Запуск MongoDB:

sudo service mongodb start

Завершение работы:

sudo service mongodb stop

Возобновление работы:

sudo service mongodb restart

Для работы с MongoDB вводим команду:

mongo

И подключаемся к запущенному экземпляру MongoDB.

Помощь MongoDB

Для получения списка команд вводим db.help() в клиенте MongoDB. В результате открывается перечень команд, как показано на скриншоте:

Статистика MongoDB

Для получения данных о сервере MongoDB вводим в клиенте команду db.stats(). Вам будет предоставлена информация об имени базы данных, количестве коллекций и документов. Результат выполнения команды отображен на следующем скриншоте:

Читайте также:

Читайте нас в TelegramVK и Яндекс.Дзен

Предыдущая статьяЧерез Apache Brooklyn к автономным вычислениям
Следующая статьяЯзык C: введение и настройка среды