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

Описание процесса установки СУБД MongoDB и проверки подключения на виртуальных серверах Ubuntu 18.04.

Что такое MongoDB?

MongoDB - это документо-ориентированная база данных с открытым исходным кодом, которая обеспечивает высокую производительность, высокую доступность и автоматическое масштабирование. MongoDB предоставляется бесплатно по лицензии General Public, а также по коммерческой лицензии от производителя.

Компания-производитель определила MongoDB как:

«MongoDB is a scalable, open source, high performance, document-oriented database.»

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

  • прежде всего, СУБД  очень легко установить и настроить;
  • самой основной особенностью MongoDB является то, что это база данных без схемы. Поскольку MongoDB не содержит схемы, только ваш код определяет вашу схему.
  • возможность вывести модель данных на основе документов. Способ хранения данных в формате BSON (двоичный JSON), хэши ruby ​​и т.д. помогает хранить данные удобным образом, в то же время он способен хранить массивы и другие документы;
  • язык запросов документов, играет важную роль в поддержке динамических запросов;
  • легко масштабируется;
  • настройка производительности абсолютно проста по сравнению с любыми реляционными базами данных;
  • нет необходимости сопоставлять объекты приложения с объектами данных;
  • обеспечивает более быстрый доступ к данным благодаря своей природе использования внутренней памяти для хранения;
  • MongoDB также можно использовать в качестве файловой системы, которая помогает распределять нагрузку:
  • MongoDB поддерживает поиск по регулярным выражениям и полям;
  • MongoDB также может быть запущена как служба Windows;
  • доступно большое количество документации;
  • поддержка Sharding является одной из ключевых функций. Разделение - это процесс хранения данных на разных машинах и способность MongoDB обрабатывать данные по мере увеличения размера данных. Это приводит к горизонтальному масштабированию. С помощью шардинга можно записывать и считывать больший объем данных по мере увеличения объема данных.

Установка

Прежде чем начать устанавливать документо-ориентированную СУБД MongoDB, необходимо скачать и импортировать ключ GPG в операционную систему.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4

После импорта ключа GPG добавьте репозиторий:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu
xenial/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list

Обновите локальную базу пакетов и установите MongoDB:

sudo apt-get update
sudo apt-get install mongodb

Запустите СУБД на виртуальном сервере:

sudo systemctl start mongodb

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

sudo systemctl enable mongodb

Проверьте статус запущенного сервиса:

sudo systemctl status mongodb

Если все установлено корректно, то в консоли отобразится подобное сообщение:

● mongodb.service - An object/document-oriented database
   Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: active (running) since Mon 2019-07-22 14:30:11 MSK; 36min ago
     Docs: man:mongod(1)
 Main PID: 31599 (mongod)
    Tasks: 23 (limit: 507
   CGroup: /system.slice/mongodb.service
           └─31599 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
Jul 22 14:30:11 Ubuntu1804x64 systemd[1]: Started An object/document-oriented database.

По умолчанию сервис должен прослушивать порт 27017, чтобы это проверить выполните следующую команду:

ss -tunelp | grep 27017

Вы увидите следующий вывод:

tcp    LISTEN   0    128     127.0.0.1:27017        0.0.0.0:*
users:(("mongod",pid=31599,fd=11)) uid:112 ino:72894 sk:1 <->

Проверка подключения

Для тестового соединения с СУБД MongoDB можно выполнить команду:

mongo --eval 'db.runCommand({ connectionStatus: 1 })'

Краткая информация по результату подключения в формате json:

MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
        "authInfo" :
                "authenticatedUsers" : [ ],
                "authenticatedUserRoles" : [ ]
        },
        "ok" : 1
 }

Для подключения к субд используйте простую команду:

mongo

Ниже приведены простые примеры по работе с mongo.

Создание базы данных:

> use cloud_db
switched to db cloud_db

Показать текущую БД:

> db
cloud_db

Вставить данные:

> db.files.insert({"name":"serverspace"})
WriteResult({ "nInserted" : 1 })

Вывести все БД на сервере:

> show dbs
admin    0.000GB
config   0.000GB
local    0.000GB
сloud_db  0.000GB

Удалить текущую БД:

> db.dropDatabase()
{ "dropped" : "cloud_db", "ok" : 1 }

Команда выхода:

> exit
bye