Zarządzanie kolekcją w usłudze Azure Cosmos DB dla bazy danych MongoDB przy użyciu platformy .NET
DOTYCZY: MongoDB
Zarządzaj kolekcją bazy danych MongoDB przechowywaną w usłudze Azure Cosmos DB przy użyciu natywnego sterownika klienta bazy danych MongoDB.
Dokumentacja referencyjna interfejsu API dla bazy danych | MongoDB — pakiet MongoDB (NuGet)
Nazwij kolekcję
W usłudze Azure Cosmos DB kolekcja jest analogiczna do tabeli w relacyjnej bazie danych. Podczas tworzenia kolekcji nazwa kolekcji tworzy segment identyfikatora URI używanego do uzyskiwania dostępu do zasobu kolekcji i wszystkich podrzędnych dokumentów.
Pobieranie wystąpienia kolekcji
Użyj wystąpienia klasy Collection , aby uzyskać dostęp do kolekcji na serwerze.
Poniższe fragmenty kodu zakładają, że połączenie klienta zostało już utworzone.
Tworzenie kolekcji
Aby utworzyć kolekcję, wstaw dokument do kolekcji.
- 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);
Usuwanie kolekcji
Usuń kolekcję z bazy danych, aby ją trwale usunąć. Jednak następna operacja wstawiania lub aktualizowania, która uzyskuje dostęp do kolekcji, spowoduje utworzenie nowej kolekcji o tej nazwie.
client.GetDatabase("adventureworks").DropCollection("products");
Pobieranie indeksów kolekcji
Indeks jest używany przez aparat zapytań bazy danych MongoDB w celu zwiększenia wydajności zapytań bazy danych.
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());
}