Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Important
Вы хотите перенести существующее приложение MongoDB или использовать функции языка запросов MongoDB (MQL)? Рассмотрим Azure DocumentDB.
Вы ищете решение для баз данных для крупномасштабных сценариев с соглашением об уровне обслуживания (SLA) с доступностью 99,999%, мгновенным автомасштабированием и автоматическим переключением на резервные ресурсы в нескольких регионах? Рассмотрим Azure Cosmos DB для NoSQL.
В этом кратком руководстве описано, как развернуть базовое приложение Azure Cosmos DB для MongoDB с помощью Python. Azure Cosmos DB для MongoDB — это хранилище данных без схемы, позволяющее приложениям хранить неструктурированные документы в облаке с помощью библиотек MongoDB. Вы узнаете, как создавать документы и выполнять основные задачи в ресурсе Azure Cosmos DB с помощью Python.
Исходный код библиотеки | Пакет (PyPI) | Azure Developer CLI
Предпосылки
- Azure Developer CLI (Интерфейс командной строки для разработчиков Azure)
- Docker Desktop
- Python 3.12
Если у вас нет аккаунта Azure, создайте бесплатную учетную запись перед началом.
Инициализация проекта
Используйте интерфейс командной строки разработчика Azure (azd) для создания учетной записи Azure Cosmos DB для таблицы и развертывания контейнерного примера приложения. Пример приложения использует клиентскую библиотеку для управления, создания, чтения и выполнения запросов к образцам данных.
Откройте терминал в пустом каталоге.
Если вы еще не прошли проверку подлинности, выполните проверку подлинности в интерфейсе командной строки разработчика Azure с помощью
azd auth login. Следуйте инструкциям, указанным инструментом, чтобы выполнить аутентификацию в CLI, используя ваши предпочитаемые учетные данные Azure.azd auth loginИспользуйте
azd initдля инициализации проекта.azd init --template cosmos-db-mongodb-python-quickstartВо время инициализации настройте уникальное имя среды.
Разверните учетную запись Azure Cosmos DB с помощью
azd up. Шаблоны Bicep также развертывают образец веб-приложения.azd upВ процессе подготовки выберите вашу подписку, желаемое местоположение и целевую группу ресурсов. Дождитесь завершения процесса настройки. Процесс может занять около пяти минут.
После завершения подготовки ресурсов Azure в выходные данные включён URL-адрес работающего веб-приложения.
Deploying services (azd deploy) (✓) Done: Deploying service web - Endpoint: <https://[container-app-sub-domain].azurecontainerapps.io> SUCCESS: Your application was provisioned and deployed to Azure in 5 minutes 0 seconds.Используйте URL-адрес консоли для перехода к веб-приложению в браузере. Просмотрите выходные данные запущенного приложения.
Установка клиентской библиотеки
Клиентская библиотека доступна через PyPi в качестве pymongo пакета.
Откройте терминал и перейдите в папку
/src.cd ./srcЕсли
pymongoеще не установлен, установите пакет с помощьюpip install.pip install pymongoОткройте и просмотрите файл src/requirements.txt , чтобы убедиться, что запись
pymongoсуществует.
Импорт библиотек
Импортируйте тип MongoClient в код вашего приложения.
from pymongo import MongoClient
Объектная модель
| Name | Description |
|---|---|
MongoClient |
Тип, используемый для подключения к MongoDB. |
Database |
Представляет базу данных в учетной записи. |
Collection |
Представляет коллекцию в базе данных в учетной записи. |
Примеры кода
- аутентификация клиента;
- Получить базу данных
- Получить коллекцию
- Создание документа
- Получить документ
- Запрос документов
Пример кода в шаблоне использует базу данных с именем cosmicworks и коллекцию с именем products. Коллекция products содержит такие сведения, как имя, категория, количество и уникальный идентификатор для каждого продукта. Коллекция использует /category свойство в качестве ключа шардирования.
аутентификация клиента;
В этом примере создается новый экземпляр MongoClient типа.
connection_string = "<azure-cosmos-db-for-mongodb-connection-string>"
client = MongoClient(connection_string)
Получение базы данных
В этом примере экземпляр типа Database создается с помощью функции get_database типа MongoClient.
database = client.get_database("<database-name>")
Получите коллекцию
В этом примере экземпляр типа Collection создается с помощью функции get_collection типа Database.
collection = database.get_collection("<collection-name>")
Создание документа
Создайте документ в коллекции с помощью collection.update_one. Этот метод "вставляет или обновляет" элемент, фактически заменяя элемент, если он уже существует.
new_document = {
"_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"category": "gear-surf-surfboards",
"name": "Yamba Surfboard",
"quantity": 12,
"sale": False,
}
filter = {
"_id": "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
"category": "gear-surf-surfboards"
}
payload = {
"$set": new_document
}
result = collection.update_one(filter, payload, upsert=True);
Чтение документа
Выполните операцию точечного чтения, используя поля уникального идентификатора (id) и ключа сегментов. Используйте collection.find_one, чтобы эффективно получить конкретный элемент.
filter = {
"_id": "bbbbbbbb-1111-2222-3333-cccccccccccc",
"category": "gear-surf-surfboards"
}
existing_document = collection.find_one(filter)
Поиск документов
Выполнение запроса по нескольким элементам в контейнере с помощью collection.find. Этот запрос находит все элементы в пределах указанной категории (шард-ключ).
filter = {
"category": "gear-surf-surfboards"
}
matched_documents = collection.find(filter)
for document in matched_documents:
# Do something with each item
Изучите свои данные
Используйте расширение Visual Studio Code для Azure Cosmos DB для изучения данных MongoDB. Вы можете выполнять основные операции с базой данных, включая, но не ограничиваясь:
- Выполнение запросов с помощью книги заметок или редактора запросов
- Изменение, обновление, создание и удаление документов
- Импорт массовых данных из других источников
- Управление базами данных и коллекциями
Дополнительные сведения см. в руководстве по использованию расширения Visual Studio Code для изучения данных Azure Cosmos DB для MongoDB.
Очистите ресурсы
Когда вы больше не нуждаетесь в демонстрационном приложении или ресурсах, удалите соответствующее развертывание и все ресурсы.
azd down --force --purge