Кратко:
- Создание кластера MongoDB в Yandex Cloud
- Установка основных настроек кластера: тип хоста, класс, стандартное сетевое хранилище
- Подключение к базе данных через интернет или с виртуальных машин
- Установка утилиты MongoDB Shell
- Создание коллекции "users" в базе данных
- Загрузка тестовых данных с помощью методов db.insertOne() и db.insertMany()
- Работа с данными, содержащими разный набор данных
- Проверка наличия пользователей старше 37 лет с помощью метода db.users.find()
Практическая работа. Создание кластера MongoDB
На этом уроке вы создадите кластер MongoDB, подключитесь к нему и загрузите в него данные. Раньше вы работали только с реляционными БД, но использование кластера MongoDB принципиально не отличается от работы с кластером MySQL или PostgreSQL, так что многое будет вам знакомо.
Создание кластера базы данных
Выберите в консоли управления Yandex Cloud каталог для кластера БД. На дашборде каталога откройте раздел Managed Service for MongoDB. В открывшемся окне нажмите кнопку Создать кластер.
Установите основные настройки кластера. Для этого урока создайте кластер с минимальной конфигурацией: тип хоста
burstable, класс b2.nano, стандартное сетевое хранилище размером 10 ГБ. Откройте публичный доступ к хосту и задайте пароль пользователя БД. Остальные значения оставьте по умолчанию.
Подключение к базе данных
В сервисе управляемых БД MongoDB к хостам можно подключаться через интернет или с виртуальных машин в той же сети. Порт для подключения —
27018.Для подключения через интернет хосты кластера должны находиться в публичном доступе. Подключаться можно только через зашифрованное соединение.
Обратите внимание: если публичный доступ настроен только для некоторых хостов в кластере, то при автоматической смене основной реплики она может оказаться недоступной из интернета.
Если к хосту нет публичного доступа и вы подключаетесь к нему с виртуальных машин Yandex Cloud, то зашифрованное соединение необязательно.
Подключитесь к созданной БД из интернета. Используйте SSL-сертификат, который вы подготовили на одной из предыдущих практических работ, или команду (для Ubuntu):
sudo mkdir -p /usr/local/share/ca-certificates/Yandex && \
sudo wget "https://storage.yandexcloud.net/cloud-certs/CA.pem" -O /usr/local/share/ca-certificates/Yandex/YandexInternalRootCA.crt
Если всё пройдет успешно — вы получите сообщение операционной системы о том, что сертификат сохранён.

Установите утилиту MongoDB Shell:
- Обновление индекса пакетов. Для этого нужно запустить команду
.sudo apt update - Установка curl. Теперь можно установить пакет curl с помощью команды
sudo apt install curl - Проверка установки. После установки можно проверить версию curl, чтобы убедиться, что она установлена правильно. Для этого нужно выполнить команду
curl --version
Чтобы установить актуальный пакет MongoDB, необходимо добавить его в список репозиториев. Но предварительно следует импортировать открытый ключ для MongoDB в вашу систему. Для этого используйте следующую команду:
curl -fsSL https://pgp.mongodb.com/server-7.0.asc | sudo gpg -o /usr/share/keyrings/mongodb-server-7.0.gpg --dearmor
Теперь добавьте репозиторий MongoDB 7.0 в директорию
/etc/apt/sources.list.d:echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-7.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/7.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-7.0.list
В результате вы создадите файл с именем
mongodb-org-7.0.list. Для просмотра его содержимого можно использовать команду cat находясь в директории /etc/apt/sources.list.d/:cd /etc/apt/sources.list.d/
cat mongodb-org-7.0.list

Затем обновите локальный список пакетов, в результате чего репозиторий MongoDB 7.0 будет добавлен в систему:
sudo apt update
Далее уже можно будет запустить установку непосредственно пакета MongoDB:
sudo apt install mongodb-org

Сервис сформирует пример строки подключения для кластера. Там же вы можете посмотреть примеры кода на Python, PHP, Java, Node.js, Go для подключения из приложений.
Подключитесь к кластеру из командной строки.
mongosh --norc \
--tls \
--tlsCAFile /home/<домашняя директория>/.mongodb/root.crt \
--host '<FQDN хоста MongoDB>:27018' \
--username <имя пользователя БД> \
--password <пароль пользователя БД> \
<имя БД>
При успешном подключении вы получите сообщение:

Создадим в БД коллекцию
users. Предположим, в ней содержится информация о пользователях вашего приложения.db.createCollection("users")
Загрузим в коллекцию тестовые данные с помощью методов добавления одного документа
db.insertOne(...) и сразу нескольких db.insertMany(...).Сначала добавим один документ (данные одного пользователя).
db.users.insertOne({firstName: "Adam", lastName: "Smith", age: 37, email: "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. "});
Ответ должен выглядеть примерно так:

Дополним коллекцию данными еще двух пользователей.
db.users.insertMany( [
{firstName: "Viktoria", lastName: "Holmes", age: 73, email: "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. ", phone: "737772727"},
{firstName: "Tina", lastName: "Anders", age: 29, email: "Адрес электронной почты защищен от спам-ботов. Для просмотра адреса в браузере должен быть включен Javascript. ", children: [{firstName: "Sam", lastName: "Anders"},{firstName: "Anna", lastName: "Anders"}]}
] );
Обратите внимание, что документы в коллекции
users содержат разный набор данных. С помощью MongoDB мы можем работать с данными, структура которых частично не совпадает.Теперь посмотрим на содержимое коллекции с помощью команды
db.users.find(). Результат показывает, что все данные успешно добавлены:
Проверим, есть ли среди пользователей те, кому больше 37 лет. Сделаем запрос к БД с помощью метода
find.db.users.find({age: {$gt: 37}});
Подробности о методах работы с данными в MongoDB вы найдете в документации.




