Для многих привычными являются базы данных реляционного типа — MySQL, MS SQL, Oracle и другие. В таких базах данные хранятся в таблицах, а для работы с ними нужно писать запросы. Но есть база данных с другой архитектурой — база MongoDB. В этой статье мы расскажем, что это такое и как проходит работа с MongoDB, опишем ее преимущества, а также приведем краткое руководство по установке MongoDB на Ubuntu.
Что такое MongoDB
MongoDB — это документоориентированная база данных типа NoSQL. В отличие от реляционных БД, NoSQL для хранения данных используют не таблицы со строками и столбцами, а коллекции и JSON-подобные документы. Документы состоят из так называемых пар «ключ-значение». Пара «ключ-значение» представляет собой имя поля (ключ документа) и его значение. Коллекции же состоят из групп документов.
В MongoDB можно работать с разными языками программирования: PHP, Perl, C/C++. Кроме того, возможно подключение MongoDB к Node JS. Для MongoDB документация на русском языке отсутствует, но на официальном сайте есть методичка по базам данных в MongoDB.
Преимущества MongoDB
- Гибкость — MongoDB хранит данные в документах формата JSON, а не в таблицах. Это позволяет хранить информацию со сложной структурой. При этом содержание и размер документов может быть разным, и не требуется создавать определенную схему базы данных.
- Кроссплатформенность — MongoDB можно использовать на операционных системах Windows, Linux (Ubuntu, Debian, CentOS), MacOS.
- Динамические запросы к документам.
- Репликация — MongoDB может работать на нескольких серверах.
- Простая масштабируемость.
Ключевые компоненты архитектуры MongoDB
- _id — уникальный идентификатор документа MongoDB. Если вы добавите новый документ без поля _id, идентификатор создастся автоматически.
- Документ — запись, которая хранится в коллекции. Это эквивалент строки в реляционных СУБД. Состоит из пар «ключ-значение».
- Коллекция — это группа документов MongoDB, эквивалент таблицы в реляционных СУБД.
- База данных — это контейнер с коллекциями. У каждой базы данных есть свой собственный набор файлов в файловой системе. Сервер MongoDB может хранить несколько баз данных.
Пример документа MongoDB:
Установка MongoDB на Ubuntu
Подробная инструкция по установке на Ubuntu (install Ubuntu) есть на официальном сайте MongoDB. Мы опишем, как установить MongoDB и создать пользователя базы данных.
Внимание
На данный момент установка MongoDB недоступна пользователям из России и Белоруссии.
Обратите внимание! Перед установкой убедитесь, что у вас заказан VPS Cloud Server.
MongoDB — руководство на русском:
- 1 Подключитесь к VPS-серверу по SSH.
-
2
Добавьте GPG-ключ репозитория MongoDB:
wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
-
3
Добавьте репозиторий MongoDB.
Для Ubuntu 18.04:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
Для Ubuntu 20.04:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list
-
4
Обновите список пакетов перед установкой MongoDB:
sudo apt-get update
-
5
Установите MongoDB:
sudo apt-get install -y mongodb-org
-
6
Запустите MongoDB:
sudo systemctl start mongod.service
-
7
Включите автозапуск службы при перезагрузке системы:
sudo systemctl enable mongod.service
-
8
Проверьте статус службы:
sudo systemctl status mongod
-
9
Включите удаленный доступ к MongoDB:
sudo ufw allow from ip_адрес/32 to any port 27017
Где ip_адрес — IP-адрес вашего сервера. IP-адрес сервера высылается на контактный email при подключении. Также вы можете увидеть его в панели управления услугой «Облачные серверы».
-
10
Проверьте статус:
sudo ufw status
-
11
Разрешите удалённые соединения MongoDB. Для этого откройте файл конфигурации /etc/mongod.conf:
sudo nano /etc/mongod.conf
И введите следующие строки:
bind_ip = 127.0.0.1, ip_адрес #port = 27017
Где ip_адрес — IP-адрес вашего сервера.
- 12 Сохраните и закройте файл. Нажмите сочетание клавиш Ctrl+X, а затем Y.
-
13
Перезапустите MongoDB:
sudo systemctl restart mongod
Готово, вы установили MongoDB.
MongoDB создать пользователя
-
1
Откройте командную строку MongoDB:
mongo
-
2
Войдите как администратор базы admin:
use admin
-
3
Чтобы создать пользователя, введите:
db.createUser( { user: "username", pwd: "password", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
Где:
username — имя пользователя,
password — пароль.
-
4
Закройте командную строку Mongo:
exit
MongoDB создать базу данных
Чтобы создать новую базу данных, введите команду:
use database
Вместо database введите название базы данных.
Если БД с таким названием уже существует, вы переключитесь на работу с ней.
Как узнать, с какой базой данных идёт работа:
db
Чтобы увидеть список баз данных:
show dbs
Недостатки СУБД MongoDB
В сравнении с реляционными базами данных, MongoDB имеет не только преимущества, но и недостатки. Вот основные из них:
- Сложность работы с транзакциями.
- Меньшее соответствие требованиям к транзакционным системам (ACID — атомарность, согласованность, изолированность, прочность), чем реляционные БД.
Готово, мы рассмотрели, как подключить и как запустить MongoDB.
Помогла ли вам статья?
Спасибо за оценку. Рады помочь 😊