Практическая работа. Создание кластера

На этом уроке вы создадите кластер MongoDB, подключитесь к нему и загрузите в него данные. Раньше вы работали только с реляционными БД, но использование кластера MongoDB принципиально не отличается от работы с кластером MySQL или PostgreSQL, так что многое будет вам знакомо.

Создание кластера базы данных

Выберите в консоли управления Yandex.Cloud каталог для кластера БД. На дашборде каталога откройте раздел Managed Service for MongoDB.

image

В открывшемся окне нажмите кнопку Создать кластер.Установите основные настройки кластера. Для этого урока создайте кластер с минимальной конфигурацией: тип хоста burstable, класс b2.nano, стандартное сетевое хранилище размером 10 ГБ.

image

Подключение к базе данных

В сервисе управляемых БД 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 

Если всё пройдет успешно — вы получите сообщение операционной системы о том, что сертификат сохранён.Проверьте себя

image

Установите утилиту Mongo Shell. Скачайте ее в разделе загрузок на сайте MongoDB.Подключитесь к БД с помощью команды mongo. Чтобы получить строку подключения, на основной странице сервиса в консоли управления выберите кластер и на левой панели нажмите Обзор.

image

Нажмите кнопку Подключиться. Сервис сформирует пример строки подключения для кластера. Там же вы можете посмотреть примеры кода на Python, PHP, Java, Node.js, Go для подключения из приложений.Подключитесь к кластеру из командной строки. При успешном подключении вы получите сообщение:

image

Создадим в БД коллекцию users. Предположим, в ней содержится информация о пользователях вашего приложения.

Скопировать кодdb.createCollection("users") 

Проверьте себя

image

Загрузим в коллекцию тестовые данные с помощью методов добавления одного документа db.insertOne(…) и сразу нескольких db.insertMany(…).Сначала добавим один документ (данные одного пользователя).

Скопировать кодdb.users.insertOne({firstName: "Adam", lastName: "Smith", age: 37, email: "adam.smith@test.com"}); 

Ответ должен выглядеть примерно так:

image

Дополним коллекцию данными еще двух пользователей.

Скопировать код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(). Результат показывает, что все данные успешно добавлены:

image

Проверим, есть ли среди пользователей те, кому больше 37 лет. Сделаем запрос к БД с помощью метода find.

Скопировать кодdb.users.find({age: {$gt: 37}}); 

Проверьте себя

image

Подробности о методах работы с данными в MongoDB вы найдете в документации.

Previous Story

Введение. Несколько слов о NoSQL

Next Story

Шардирование

Latest from Blog

Zabbix – Docker – Raspberry Pi

Для начала установим Portainer – веб-интерфейс для управления docker-контейнерами. Бесплатно, удобно, подойдет новичкам в docker. Установка

Сетевая папка/диск в Linux

x.x.x.x адрес шары /mnt/shara точка монтирования user пользователь с доступом к шаре 1234 пароль пользователя Для

Памятка SSH

В статье описаны продвинутые функций OpenSSH, которые позволяют сильно упростить жизнь системным администраторам и программистам, которые

0 £0.00