Управление коллекцией в Azure Cosmos DB для MongoDB с помощью .NET
Область применения: MongoDB
Управление коллекцией MongoDB, хранящейся в Azure Cosmos DB, с помощью собственного драйвера клиента MongoDB.
Примечание.
Примеры фрагментов кода доступны на GitHub в виде проекта .NET.
Справочная документация | по API для MongoDB Package (NuGet)
Присвоение имени коллекции
В Azure Cosmos DB коллекция аналогична таблице в реляционной базе данных. При создании коллекции имя коллекции формирует сегмент URI, используемый для доступа к ресурсу коллекции и любым дочерним документам.
Получение экземпляра коллекции
Используйте экземпляр класса Collection для доступа к коллекции на сервере.
В следующих фрагментах кода предполагается, что вы уже создали клиентское подключение.
Создание коллекции
Чтобы создать коллекцию, вставьте документ в коллекцию.
- MongoClient.Database.Collection
- MongoClient.Database.Collection.InsertOne
- MongoClient.Database.Collection.InsertMany
// 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());
}