Поделиться через


Управление коллекцией в Azure Cosmos DB для MongoDB с помощью .NET

Область применения: MongoDB

Управление коллекцией MongoDB, хранящейся в Azure Cosmos DB, с помощью собственного драйвера клиента MongoDB.

Примечание.

Примеры фрагментов кода доступны на GitHub в виде проекта .NET.

Справочная документация | по API для MongoDB Package (NuGet)

Присвоение имени коллекции

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

Получение экземпляра коллекции

Используйте экземпляр класса Collection для доступа к коллекции на сервере.

В следующих фрагментах кода предполагается, что вы уже создали клиентское подключение.

Создание коллекции

Чтобы создать коллекцию, вставьте документ в коллекцию.

// insert one document
var product = new BsonDocument
{
    { "name", "Sand Surfboard" },
    { "category", "gear-surf-surfboards" },
    { "count", 1 }
};

client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertOne(product);

// insert many documents
var products = new List<BsonDocument>() 
{
    new BsonDocument
    {
        { "name", "Sand Surfboard" },
        { "category", "gear-surf-surfboards" },
        { "count", 1 }
    },
    new BsonDocument
    {
        { "name", "Ocean Surfboard" },
        { "category", "gear-surf-surfboards" },
        { "count", 5 }
    }
};

client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertMany(products);

Удаление коллекции

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

client.GetDatabase("adventureworks").DropCollection("products");

Получение индексов коллекции

Индекс используется обработчиком запросов MongoDB для повышения производительности запросов к базам данных.

var indexes = client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").Indexes;

var count = 0;
using (var cursor = await indexes.ListAsync())
{
    do
    {
        if (cursor.Current != null)
        {
            foreach (var index in cursor.Current)
            {
                Console.WriteLine(cursor.Current);
                count++;
            }
        }
    }
    while (await cursor.MoveNextAsync());
}

См. также