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