Sdílet prostřednictvím


Správa kolekce ve službě Azure Cosmos DB pro MongoDB pomocí .NET

PLATÍ PRO: MongoDB

Spravujte kolekci MongoDB uloženou ve službě Azure Cosmos DB pomocí nativního klientského ovladače MongoDB.

Poznámka:

Ukázkové fragmenty kódu jsou k dispozici na GitHubu jako projekt .NET.

Referenční dokumentace | k rozhraní API pro MongoDB – Balíček MongoDB (NuGet)

Pojmenování kolekce

Ve službě Azure Cosmos DB je kolekce podobná tabulce v relační databázi. Při vytváření kolekce tvoří název kolekce segment identifikátoru URI, který se používá pro přístup k prostředku kolekce a všem podřízeným dokumentům.

Získání instance kolekce

Pro přístup k kolekci na serveru použijte instanci třídy Collection .

Následující fragmenty kódu předpokládají, že jste už vytvořili připojení klienta.

Vytvoření kolekce

Pokud chcete vytvořit kolekci, vložte dokument do kolekce.

// 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);

Vyřazení kolekce

Odstraňte kolekci z databáze, abyste ji trvale odebrali. Další operace vložení nebo aktualizace, která přistupuje k kolekci, však vytvoří novou kolekci s tímto názvem.

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

Získání indexů kolekce

Dotazovací stroj MongoDB používá index ke zlepšení výkonu databázových dotazů.

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());
}

Viz také