MongoDB – бесплатная документо-ориентированная база данных, которая классифицируется как база NoSQL, поскольку основой её является не традиционная реляционная структура базы данных. MongoDB, вместо этого, использует JSON-подобные документы с динамическими схемами. В отличие от реляционных баз, MongoDB не требует наличия заранее созданной схемы перед тем, как внести данные в БД. Вы имеете возможность изменять схему в любой момент, и так часто, как это может потребоваться, без необходимости устанавливать новую базу данных с обновлённой схемой. В этом руководстве вы увидите, как можно установить MongoDB на CentOS Stream.
Добавление репозитория MongoDB
Официальный репозиторий CentOS Stream не содержит пакет установщика mongodb-org
. Но, тем не менее, MongoDB поддерживает свой специализированный репозиторий. Поэтому, первым шагом настоящего мануала будет добавление данного репозитория на ваш сервер.
Все действия в данном руководстве будут выполняться от имени пользователя, имеющего привилегии sudo.
Зарегистрируйтесь в системе с помощью учётной записи такого пользователя, и при помощи текстового редактора vi
создайте файл .repo
:
$ cd /etc/yum.repos.d
$ sudo vi mongodb-org.repo
В этот файл вставьте следующие строки:
[mongodb-org-4.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc
На настоящий момент актуальная версия MongoDB – 4.4. Перед запуском установки вы можете перейти на страницу MongoDB и проверить номер последней версии (в вашем случае он уже может быть другим).
После завершения редактирования файла закройте его сохранив изменения.
Установка и запуск MongoDB
Теперь, когда всё готово для установки, запустите инсталляцию пакета MongoDB:
$ sudo yum install -y mongodb-org

По завершении установки, необходимо запустить сервис MongoDB:
$ sudo systemctl start mongod
Проверить состояние запущенной службы можно командой:
$ sudo systemctl status mongod

Если есть необходимость сервис MongoDB можно остановить:
$ sudo systemctl stop mongod
Или перезапустить:
$ sudo systemctl restart mongod
Запуск оболочки MongoDB производится командой:
$ mongo

Приглашение ко вводу команд в оболочке MongoDB выглядит как знак >
.
Чтобы узнать больше о том, как взаимодействовать с оболочкой MongoDB, используйте метод db.help()
. Его выводом является список методов, которые используются в MongoDB для взаимодействия с объектами баз данных:

Выход из оболочки осуществляется командой exit
.
Проверка автозапуска
Из-за того, что приложения, управляющие базами данных, не могут функционировать без самих баз данных (а MongoDB определённо к ним относится), необходимо быть уверенным, что демон MongoDB запускается вместе с запуском системы.
Для проверки автозапуска службы MongoDB используйте команду:
$ systemctl is-enabled mongod; echo $?
Вывод команды должен выглядеть как:

В данном случае, 0
свидетельствует о том, что демон запущен. Если вместо 0
в выводе присутствует 1
, то демон MongoDB необходимо запустить:
$ sudo systemctl enable mongod
Выполнение этой команды включает автозапуск демона MongoDB.
Импорт примерного набора данных
В отличие от других СУБД, MongoDB не имеет в своём арсенале тестовой базы. Поэтому, если вы хотите опробовать функционал системы не затрагивая данные, находящиеся в работе, вы можете скачать образец набора данных со специальной страницы MongoDB. Скачанный документ в формате JSON, в котором содержится список ресторанов, вы можете использовать для изучения взаимодействия с базой, избегая причинения вреда “боевым” данным.
Для начала перейдите во временную директорию:
$ cd /tmp
И теперь, при помощи команды curl
подключитесь к соответствующей странице MongoDB и скачайте JSON-файл:
$ curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

Далее, с помощью команды mongoimport
вставьте полученные данные в базу данных, которая называется test
. В этой инструкции опция --db
указывает на базу данных, которую необходимо использовать, опция --collection
указывает, где в базе данных будет сохранена информация, и опция --file
указывает, какой файл будет использован для импорта:
$ mongoimport --db test --collection restaurants --file /tmp/primer-dataset.json
Вывод команды должен выглядеть примерно так:

Теперь можно попробовать выполнить запрос к данным тестовой базы. Для чего подключитесь к оболочке MongoDB:
$ mongo
Оболочка по умолчанию подключится к базе данных test
, в которую мы импортировали наши данные.
С помощью метода find()
вы можете вывести на просмотр коллекцию restaurants
. Коллекция содержит список всех ресторанов в этом наборе данных. Так как в списке более 25 тысяч записей, вы можете использовать метод limit()
, чтобы уменьшить вывод запроса до определённого числа записей. Дополнительно, вы можете использовать метод pretty()
, который позволяет предоставлять информацию в более читабельном формате:
> db.restaurants.find().limit( 1 ).pretty()

Также, вы можете продолжить использовать эти данные для того, чтобы поближе познакомиться с MongoDB, применяя другие методы. Для удаления набора данных, используйте метод db.restaurants.drop()
:
> db.restaurants.drop()
Для того, чтобы выйти из оболочки, наберите:
> exit
Заключение
В данном руководстве мы узнали как установить MongoDB на CentOS Stream. А именно, мы добавили в систему репозиторий, установили СУБД MongoDB, импортировали образец набора данных и рассмотрели выполнение простейших запросов. Мы лишь поверхностно коснулись функционала MongoDB. Так что, теперь вы можете самостоятельно создать свою базу данных и наполнить её своими коллекциями необходимых записей.