Перейти к основному контенту

Руководство по MongoDB

Для многих привычными являются базы данных реляционного типа — MySQL, MS SQL, Oracle и другие. В таких базах данные хранятся в таблицах, а для работы с ними нужно писать запросы. Но есть база данных с другой архитектурой — база MongoDB. В этой статье мы расскажем, что это такое и как проходит работа с MongoDB, опишем её преимущества, а также приведём краткое руководство по установке MongoDB на Ubuntu.

База данных MongoDB

Установите базу данных для приложений нового поколения MongoDB. При аренде нового Облачного сервера с Ubuntu 18.04 доступна автоматическая установка.

Заказать VPS с MongoDB

Что такое 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

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

Подробная инструкция по установке на Ubuntu (install Ubuntu) есть на официальном сайте MongoDB. Мы опишем, как установить MongoDB и создать пользователя базы данных.

Обратите внимание! Перед установкой убедитесь, что у вас заказан VPS Cloud Server.

MongoDB — руководство на русском:

  1. 1.
  2. 2.

    Добавьте GPG-ключ репозитория MongoDB:

    wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -
  3. 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. 4.

    Обновите список пакетов перед установкой MongoDB:

    sudo apt-get update
  5. 5.

    Установите MongoDB:

    sudo apt-get install -y mongodb-org
  6. 6.

    Запустите MongoDB:

    sudo systemctl start mongod.service
  7. 7.

    Включите автозапуск службы при перезагрузке системы:

    sudo systemctl enable mongod.service
  8. 8.

    Проверьте статус службы:

    sudo systemctl status mongod
  9. 9.

    Включите удалённый доступ к MongoDB:

    sudo ufw allow from ip_адрес/32 to any port 27017

    Где ip_адрес — IP-адрес вашего сервера. IP-адрес сервера высылается на контактный email при подключении. Также вы можете увидеть его в панели управления услугой «Облачные серверы».

  10. 10.

    Проверьте статус:

    sudo ufw status
  11. 11.

    Разрешите удалённые соединения MongoDB. Для этого откройте файл конфигурации /etc/mongod.conf:

    sudo nano /etc/mongod.conf

    И введите следующие строки:

    bind_ip = 127.0.0.1, ip_адрес
    
    #port = 27017

    Где ip_адрес — IP-адрес вашего сервера.

  12. 12.
    Сохраните и закройте файл. Нажмите сочетание клавиш Ctrl+X, а затем Y.
  13. 13.

    Перезапустите MongoDB:

    sudo systemctl restart mongod

Готово, вы установили MongoDB.

MongoDB создать пользователя

  1. 1.

    Откройте командную строку MongoDB:

    mongo
  2. 2.

    Войдите как администратор базы admin:

    use admin
  3. 3.

    Чтобы создать пользователя, введите:

    db.createUser(
    
      {
        user: "username",
        pwd: "password",
        roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]
      }
    )

    Где:

    username — имя пользователя,

    password — пароль.

  4. 4.

    Закройте командную строку Mongo:

    exit

MongoDB создать базу данных

Чтобы создать новую базу данных, введите команду:

use database

Вместо database введите название базы данных.

Если БД с таким названием уже существует, вы переключитесь на работу с ней.

Как узнать, с какой базой данных идёт работа:

db

Чтобы увидеть список баз данных:

show dbs

Недостатки СУБД MongoDB

В сравнении с реляционными базами данных, MongoDB имеет не только преимущества, но и недостатки. Вот основные из них:

  • Сложность работы с транзакциями.

  • Меньшее соответствие требованиям к транзакционным системам (ACID — атомарность, согласованность, изолированность, прочность), чем реляционные БД.

Готово, мы рассмотрели, как подключить и как запустить MongoDB.

Была ли эта статья полезной?
Пользователи, считающие этот материал полезным: 2 из 2