Condividi tramite


Gestire un database MongoDB con .NET

SI APPLICA A: MongoDB

Il server MongoDB in Azure Cosmos DB è disponibile nel pacchetto NuGet MongoDB.

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 un database

In Azure Cosmos DB, un database è analogo a uno spazio dei nomi. Quando si crea un database, il nome del database costituisce un segmento dell'URI usato per accedere alla risorsa di database e alle risorse figlio.

Dopo la creazione, l'URI per un database si presenta nel formato seguente:

https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>

Creare un'istanza del database

È possibile usare MongoClient per ottenere un'istanza di un database o crearne una se non esiste già. La classe MongoDatabase fornisce l'accesso alle raccolte e ai relativi documenti.

Il frammento di codice seguente crea un nuovo database inserendo un documento in una raccolta. Tenere presente che il database non verrà creato finché non è necessario per questo tipo di operazione.

var client = new MongoClient(Environment.GetEnvironmentVariable("MONGO_CONNECTION"));

client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertOne(new BsonDocument() { { "Name", "surfboard" } });

Ottenere un database esistente

È anche possibile recuperare un database esistente in base al nome usando il metodo GetDatabase per accedere alle raccolte e ai documenti.

var collections = client.GetDatabase("adventureworks").ListCollectionNames();
Console.WriteLine($"The database has {collections.ToList().Count} collection.");

Ottenere un elenco di tutti i database

È possibile recuperare un elenco di tutti i database nel server usando MongoClient.

var dbFindList = client.ListDatabaseNames().ToList();

Questa tecnica può quindi essere usata per verificare se esiste già un database.

var dbFound = dbFindList.FirstOrDefault(x => x == "adventureworks");
if (dbFound is not null)
{
    Console.WriteLine($"{dbFound} database found");
}
else
{
    Console.WriteLine($"{dbFound} database not found.");
}

Eliminare un database

Un database viene rimosso dal server usando il metodo DropDatabase sulla classe DB.

client.DropDatabase("adventureworks");

Vedi anche