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