Condividi tramite


Gestire una raccolta in Azure Cosmos DB for MongoDB usando .NET

SI APPLICA A: MongoDB

Gestire la raccolta MongoDB archiviata in Azure Cosmos DB con il driver client MongoDB nativo.

Nota

I frammenti di codice di esempio sono disponibili su GitHub come progetto .NET.

Documentazione di riferimento dell'API per MongoDB | Pacchetto MongoDB (NuGet)

Assegnare un nome a una raccolta

In Azure Cosmos DB una raccolta è analoga a una tabella in un database relazionale. Quando si crea una raccolta, il relativo nome costituisce un segmento dell'URI usato per accedere alla risorsa della raccolta e a qualsiasi documento figlio.

Ottenere un'istanza della raccolta

Utilizzare un'istanza della classe Collection per accedere alla raccolta nel server.

I frammenti di codice seguenti presuppongono che sia già stata creata la connessione client.

Creare una raccolta

Per creare una raccolta, inserire un documento nella raccolta.

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

Eliminare una raccolta

Eliminare la raccolta dal database per rimuoverla definitivamente. Tuttavia, l'operazione di inserimento o aggiornamento successiva che accede alla raccolta creerà una nuova raccolta con tale nome.

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

Ottenere gli indici della raccolta

Un indice viene usato dal motore di query MongoDB per migliorare le prestazioni delle query di database.

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

Vedi anche