Краткое руководство. Использование Azure Cosmos DB для MongoDB (RU) с .NET
В этом кратком руководстве описано, как развернуть базовое приложение Azure Cosmos DB для MongoDB с помощью Python. Azure Cosmos DB для MongoDB — это хранилище данных без схемы, позволяющее приложениям хранить неструктурированные документы в облаке с помощью библиотек MongoDB. Вы узнаете, как создавать документы и выполнять основные задачи в ресурсе Azure Cosmos DB с помощью Python.
Пакет исходного кода | библиотеки (NuGet) | Azure Developer CLI
Необходимые компоненты
- Azure Developer CLI
- Docker Desktop
- Пакет SDK для .NET версии 9.0
Если у вас нет учетной записи Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
Инициализация проекта
Используйте интерфейс командной строки разработчика Azure (azd
) для создания учетной записи Azure Cosmos DB для таблицы и развертывания контейнерного примера приложения. Пример приложения использует клиентская библиотека для управления, создания, чтения и запроса примеров данных.
Откройте терминал в пустом каталоге.
Если вы еще не прошли проверку подлинности, выполните проверку подлинности в интерфейсе командной строки разработчика Azure с помощью
azd auth login
. Выполните действия, указанные средством для проверки подлинности в CLI с помощью предпочитаемых учетных данных Azure.azd auth login
Используется
azd init
для инициализации проекта.azd init --template cosmos-db-mongodb-dotnet-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-адрес консоли для перехода к веб-приложению в браузере. Просмотрите выходные данные запущенного приложения.
Установка клиентской библиотеки
Клиентская библиотека доступна через NuGet в качестве MongoDB.Driver
пакета.
Откройте терминал и перейдите в папку
/src/web
.cd ./src/web
Если пакет еще не установлен, установите
MongoDB.Driver
его с помощьюdotnet add package
.dotnet add package MongoDB.Driver
Откройте и просмотрите файл src/web/Microsoft.Samples.Cosmos.MongoDB.Quickstart.Web.csproj , чтобы убедиться, что запись
MongoDB.Driver
существует.
Объектная модель
Имя | Описание |
---|---|
MongoClient |
Тип, используемый для подключения к MongoDB. |
Database |
Представляет базу данных в учетной записи. |
Collection |
Представляет коллекцию в базе данных в учетной записи. |
Примеры кода
- аутентификация клиента;
- Получение базы данных
- Получение коллекции
- Создание документа
- Получение документа
- Запрос документов
Пример кода в шаблоне использует базу данных с именем cosmicworks
products
и коллекцией. Коллекция products
содержит такие сведения, как имя, категория, количество и уникальный идентификатор для каждого продукта. Коллекция использует /category
свойство в качестве ключа сегментов.
аутентификация клиента;
В этом примере создается новый экземпляр MongoClient
класса.
string connectionString = "<azure-cosmos-db-for-mongodb-connection-string>";
MongoClient client = new(connectionString);
Получение базы данных
В этом примере создается экземпляр IMongoDatabase
интерфейса с помощью GetDatabase
метода MongoClient
класса.
IMongoDatabase database = client.GetDatabase("<database-name>");
Получение коллекции
В этом примере создается экземпляр универсального IMongoCollection<>
интерфейса с помощью GetCollection<>
универсального IMongoDatabase
метода интерфейса. Универсальный интерфейс и метод используют тип, определенный Product
в другом классе.
IMongoCollection<Product> collection = database.GetCollection<Product>("<collection-name>");
public record Product(
string id,
string category,
string name,
int quantity,
decimal price,
bool clearance
);
Создание документа
Создайте документ в коллекции с collection.ReplaceOneAsync<>
параметром универсального Product
типа. Этот метод "upserts" элемент фактически заменяет элемент, если он уже существует.
Product document = new(
id: "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb",
category: "gear-surf-surfboards",
name: "Yamba Surfboard",
quantity: 12,
price: 850.00m,
clearance: false
);
await collection.ReplaceOneAsync<Product>(
d => d.id == document.id,
document,
new ReplaceOptions { IsUpsert = true }
);
Чтение документа
Выполните операцию чтения точек с помощью полей уникального идентификатора (id
) и ключа сегментов. Используйте collection.FindAsync<>
параметр универсального Product
типа для эффективного извлечения определенного элемента.
IAsyncCursor<Product> documents = await collection.FindAsync<Product>(
d => d.id == "aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb" && d.category == "gear-surf-surfboards"
);
Product? document = await documents.SingleOrDefaultAsync();
Запрос документов
Выполнение запроса по нескольким элементам в контейнере с помощью collection.AsQueryable()
и языковых интегрированных запросов (LINQ). Этот запрос находит все элементы в указанной категории (ключ сегмента).
IQueryable<Product> documents = collection.AsQueryable().Where(
d => d.category == "gear-surf-surfboards"
);
foreach (Product document in await documents.ToListAsync())
{
// Do something with each item
}
Изучение данных
Используйте расширение Visual Studio Code для Azure Cosmos DB для изучения данных MongoDB. Основные операции базы данных, включая, но не ограничиваются следующими:
- Выполнение запросов с помощью ломки или редактора запросов
- Изменение, обновление, создание и удаление документов
- Импорт массовых данных из других источников
- Управление базами данных и коллекциями
Дополнительные сведения см. в руководстве по использованию расширения Visual Studio Code для изучения данных Azure Cosmos DB для MongoDB.
Очистка ресурсов
Если вам больше не нужен пример приложения или ресурсов, удалите соответствующее развертывание и все ресурсы.
azd down