Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве описано, как развернуть базовое приложение Azure Cosmos DB для MongoDB с помощью Python. Azure Cosmos DB для MongoDB — это хранилище данных без схемы, позволяющее приложениям хранить неструктурированные документы в облаке с помощью библиотек MongoDB. Вы узнаете, как создавать документы и выполнять основные задачи в ресурсе Azure Cosmos DB с помощью Python.
Исходный код библиотеки | Пакет (PyPI) | Azure Developer CLI
- Azure Developer CLI
- 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
Имя | Описание |
---|---|
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
с помощью функции типа Database
get_collection
.
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