Краткое руководство. Использование Azure Cosmos DB для MongoDB (RU) с Python
В этом кратком руководстве описано, как развернуть базовое приложение 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 |
Тип, используемый для подключения к 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
. Этот метод "upserts" элемент фактически заменяет элемент, если он уже существует.
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