На этом уроке вы создадите кластер 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
Если всё пройдет успешно — вы получите сообщение операционной системы о том, что сертификат сохранён.Проверьте себя
Установите утилиту Mongo Shell. Скачайте ее в разделе загрузок на сайте MongoDB.Подключитесь к БД с помощью команды mongo. Чтобы получить строку подключения, на основной странице сервиса в консоли управления выберите кластер и на левой панели нажмите Обзор.
Нажмите кнопку Подключиться. Сервис сформирует пример строки подключения для кластера. Там же вы можете посмотреть примеры кода на Python, PHP, Java, Node.js, Go для подключения из приложений.Подключитесь к кластеру из командной строки. При успешном подключении вы получите сообщение:
Создадим в БД коллекцию users. Предположим, в ней содержится информация о пользователях вашего приложения.
Скопировать кодdb.createCollection("users")
Проверьте себя
Загрузим в коллекцию тестовые данные с помощью методов добавления одного документа db.insertOne(…) и сразу нескольких db.insertMany(…).Сначала добавим один документ (данные одного пользователя).
Скопировать кодdb.users.insertOne({firstName: "Adam", lastName: "Smith", age: 37, email: "adam.smith@test.com"});
Ответ должен выглядеть примерно так:
Дополним коллекцию данными еще двух пользователей.
Скопировать кодdb.users.insertMany( [
{firstName: "Viktoria", lastName: "Holmes", age: 73, email: "viktoria.holmes@test.com", phone: "737772727"},
{firstName: "Tina", lastName: "Anders", age: 29, email: "tina.anders@test.com", children: [{firstName: "Sam", lastName: "Anders"},{firstName: "Anna", lastName: "Anders"}]}
] );
Обратите внимание, что документы в коллекции users содержат разный набор данных. С помощью MongoDB мы можем работать с данными, структура которых частично не совпадает.Теперь посмотрим на содержимое коллекции с помощью команды db.users.find(). Результат показывает, что все данные успешно добавлены:
Проверим, есть ли среди пользователей те, кому больше 37 лет. Сделаем запрос к БД с помощью метода find.
Скопировать кодdb.users.find({age: {$gt: 37}});
Проверьте себя
Подробности о методах работы с данными в MongoDB вы найдете в документации.
Свежие комментарии