Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. MongoDB
Code

Создание кластера базы данных в облаке с помощью MongoDB Atlas

Difficulty:BeginnerLength:MediumLanguages:
Sponsored Content

This sponsored post features a product relevant to our readers while meeting our editorial guidelines for being objective and educational.

Russian (Pусский) translation by Marat Amerov (you can also view the original English article)

В течение многих лет MongoDB стала де факто NoSQL базой данных  для частных лиц и предприятий, создающих крупномасштабные приложения. Она с открытым исходным кодом, легко масштабируется и обеспечивает высокую доступность. Она также поддерживает очень сложные запросы и тщательный контроль параллелизма.

Однако необходимые задачи, такие как установка базы данных, настройка для поддержания оптимальной производительности в течение длительных периодов времени, как правило, требуют много квалифицированных и целеустремленных усилий.

К счастью, есть более простая альтернатива: MongoDB Atlas — полностью управляемая облачная версия базы данных.

С MongoDB Atlas вы можете создать кластер MongoDB для любого основного поставщика облачных вычислений по вашему выбору и начать использовать этот кластер за считанные минуты. Используя пользовательский интерфейс на основе браузера Atlas, вы также можете интуитивно настроить кластер и контролировать его производительность.

В этом уроке я покажу вам, как создать кластер MongoDB Atlas и использовать его в приложении на Python.

Предварительные требования

Прежде чем продолжить, убедитесь, что на вашем компьютере установлены и настроены следующее компоненты:

1. Создание кластера

Чтобы иметь возможность использовать облачные сервисы MongoDB, вам понадобится учетная запись MongoDB Atlas. Чтобы создать ее, перейдите на домашнюю страницу и нажмите кнопку Get started free.

Home page of MongoDB Atlas

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

Чтобы свести к минимуму задержку сети, выберете регион, ближайший к вашему компьютеру. Пока же, поскольку мы создаем кластер пользования бесплатного уровня, убедитесь, что выбранный вами регион является тем, у которого есть свободный уровень. Кроме того, если вы используете виртуальную виртуальную машину Google или инстанс Amazon EC2 в качестве среды разработки, сначала выберите соответствующий облачный провайдер.

Cloud provider and region selection

В разделе Cluster Tier выберите параметр M0, чтобы создать кластер бесплатного уровня. Он предлагает 512 МБ пространства для хранения, последнюю версию MongoDB с WiredTiger в качестве механизма хранения, набор реплик из трех узлов и щедрую пропускную способность 10 ГБ в неделю.

Cluster tier selection

Наконец, дайте значимое имя кластеру и нажмите кнопку Create Cluster.

Cluster name form

Теперь, MongoDB Atlas займет около пяти минут, чтобы настроить ваш кластер.

2. Настройка кластера

Прежде чем вы начнете использовать кластер, вам нужно будет предоставить несколько сведений, связанных с безопасностью, поэтому перейдите на вкладку Security.

Во-первых, в разделе MongoDB Users вы должны создать нового пользователя, нажав кнопку Add new user. В появившемся диалоговом окне введите нужное имя пользователя и пароль, выберите Read and write to any database и нажмите кнопку Add User.

Add new user form

Затем в разделе IP Whitelist вы должны указать список IP-адресов, с которых вы будете обращаться к кластеру. На данный момент достаточно указать текущий IP-адрес вашего компьютера.

Нажмите кнопку Add IP address, чтобы создать новую запись IP-адреса. В появившемся диалоговом окне нажмите кнопку Add current IP , чтобы заполнить поле Whitelist Entry. Кроме того, если у вас нет статического IP-адреса, рекомендуется отметить его временную запись, указав параметр Save as temporary whitelist. Наконец, нажмите Confirm, чтобы добавить запись.

Add whitelist entry form

3. Получение строки подключения

Для подключения к кластеру из приложения вам понадобится действительная строка подключения. Чтобы получить его, перейдите на вкладку Overview и нажмите кнопку Connect.

В открывшемся диалоговом окне выберите параметр Connect Your Application и нажмите кнопку I'm using driver 3.6 or later. Теперь вы можете увидеть строку подключения. У него не будет вашего фактического пароля, поэтому вам придется его вводить вручную. После этого сделайте заметку о строке, чтобы позже ее использовать.

Connecting your application dialog

4. Установка Python Drive

Чтобы иметь возможность взаимодействовать с вашим кластером MongoDB Atlas, на вашем компьютере должен быть установлен драйвер MongoDB. Для языка программирования Python, PyMongo - самый популярный драйвер на сегодня. Рекомендуемый способ установки на вашем компьютере - использовать модуль pip, как показано ниже:

Возможно, вы заметили, что ваша строка соединения Atlas Atlas - это mongodb+srv:// URI. Чтобы драйвер работал с записями DNS SRV, вы также должны установить модуль dnspython. Пример:

5. Подключение к кластеру

Теперь вы можете использовать свой MongoDB-кластер из любого приложения на Python. Чтобы следовать за мной, создайте новый скрипт Python и откройте его, используя любимый редактор кода.

Чтобы иметь возможность взаимодействовать с кластером, внутри скрипта, вам понадобится экземпляр класса MongoClient. В качестве единственного аргумента его конструктора передайте строку соединения.

Вышеуказанный конструктор выполняется сразу и не вызывает никаких ошибок. Поэтому, чтобы проверить, успешно ли вы установили соединение, я предлагаю вам попробовать выполнить операцию в кластере. Будет достаточно вызова метода server_info(), в котором вы получите различные сведения о вашем экземпляре MongoDB.

Если в вашей строке подключения нет ошибок, вызов метода server_info() будет успешным. Однако, если указанное вами имя пользователя или пароль неверны, вы столкнетесь с ошибкой OperationFailure. Следующий код показывает вам, как перехватить эту ошибку :

Теперь вы можете попробовать запустить скрипт.

Python script output

6. Вставка документов

Строка подключения по умолчанию, которую вы получаете от веб-интерфейса MongoDB Atlas, упоминает базу данных с именем test. Давайте продолжим использовать эту же базу данных. Вот как вы можете получить ссылку на неё:

База данных MongoDB состоит из одной или нескольких коллекций, которые представляют собой не что иное, как группы документов BSON (сокращение от бинарного JSON). В вашем кластере бесплатного уровня на Atlas MongoDB может быть не более 500 коллекций.

Ради реалистического примера давайте создадим новую коллекцию, названную foods. С PyMongo вам не нужно явно ссылаться на какой-либо метод. Вы можете просто ссылаться на него так, как будто он уже существует.

Стоит отметить, что приведенный выше код не создает коллекцию foods сразу. Он создается только после добавления к нему документа. Итак, давайте теперь создадим и добавим новый документ, содержащий данные о питательных веществах в продукте.

Использование метода insert_one() - это самый простой способ добавить документ в коллекцию. Чтобы указать содержимое документа, вы передаете словарь Python в этот метод. Следующий пример кода показывает вам, как это делается:

Добавление документов по одному может быть неэффективным. С помощью метода insert_many() вы можете сразу добавить несколько документов в свою коллекцию. Он ожидает набор словарей в качестве входных параметров. Следующий код добавляет еще два документа в коллекцию:

Поле _id, которое вы видите в приведенных выше документах, является полем, которое используется MongoDB в качестве первичного ключа. Таким образом, оно является неизменным и должно присутствовать во всех документах MongoDB. Если вы забудете включить его во время создания своего документа, PyMongo автоматически добавит его для вас и назначит ему автоматически генерируемое уникальное значение.

7. Выполнение запросов

Когда вы добавили несколько документов в свою коллекцию, вы можете запускать на ней запросы, вызывая метод find(), который возвращает объект Cursor, который вы можете перебрать. Если вы не передадите ему никаких аргументов, find возвращает все документы из коллекции.

Следующий код показывает, как печатать имена всех продуктов, имеющихся в нашей коллекции:

Если вы хотите, чтобы метод find() возвращал только те документы, которые соответствуют определенным критериям, вы должны передать ему словарь Python. Например, если вы хотите найти документ, чье поле name установлено в «pizza», вы можете использовать следующий код:

Для более сложных запросов вы можете использовать интуитивно именуемые запросы MongoDB в словарях, которые вы передаете методу find(). Например, следующий код показывает вам, как использовать оператор $lt для поиска документов, где поле callories  установлено меньше чем 280:

Используя точечную нотацию, вы также можете использовать вложенные поля в своих запросах. Следующий код показывает вам, как найти документы, чье поле trans, находящееся внутри поля fats, установлено в значение, которое больше или равно 0.5:

8. Обновление и удаление документов

Очень похоже на методы insert_one() и insert_many() - методы update_one() и update_many(), которые вы можете использовать для изменения содержимого документов, которые уже находятся в вашей коллекции. Оба метода обновления, помимо новых данных, нуждаются в нулевом запросе на документы, которые необходимо изменить.

Вы можете использовать различные операторы обновления в своих методах обновления. Наиболее часто используемым является $set, который позволяет добавлять новые поля или обновлять значения существующих полей. В следующем коде показано, как добавить два документа с именем fiber и sugar в документ, где поле name установлено как «taco»:

Если запрос, переданный методу update_one(), возвращает более одного документа, обновляется только первый документ. Метод update_many() не имеет этого ограничения.

Наконец, используя методы delete_one() и delete_many(), вы можете удалять документы в своих коллекциях. Оба метода требуют запросы для определения того, какие документы необходимо удалить. Вот как вы можете удалить все документы, где в поле calories установлено менее 300:

Заключение

Если вы являетесь разработчиком веб-приложений или мобильных приложений, которые хотят использовать MongoDB для хранения данных, сервис Atlas MongoDB для вас. Это позволяет вам сосредоточиться на разработке своего приложения, а не беспокоиться о таких деталях, как безопасность, производительность и приверженность лучшим практикам. Из этого урока вы узнали, как создать кластер MongoDB с помощью сервиса, подключиться к нему и выполнить на нём основные операции чтения и записи.

Чтобы узнать больше о MongoDB Atlas, вы можете обратиться к официальной документации.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.