Hantera en MongoDB-databas med hjälp av .NET
GÄLLER FÖR: MongoDB
MongoDB-servern i Azure Cosmos DB är tillgänglig från MongoDB NuGet-paketet.
API för MongoDB-referensdokumentation | MongoDB Package (NuGet)
Namnge en databas
I Azure Cosmos DB motsvarar en databas ett namnområde. När du skapar en databas utgör databasnamnet ett segment av den URI som används för att komma åt databasresursen och eventuella underordnade resurser.
När den har skapats är URI:n för en databas i det här formatet:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
Skapa en databasinstans
Du kan använda MongoClient
för att hämta en instans av en databas eller skapa en om den inte redan finns. Klassen MongoDatabase
ger åtkomst till samlingar och deras dokument.
Följande kodfragment skapar en ny databas genom att infoga ett dokument i en samling. Kom ihåg att databasen inte skapas förrän den behövs för den här typen av åtgärd.
var client = new MongoClient(Environment.GetEnvironmentVariable("MONGO_CONNECTION"));
client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertOne(new BsonDocument() { { "Name", "surfboard" } });
Hämta en befintlig databas
Du kan också hämta en befintlig databas med namn med hjälp GetDatabase
av metoden för att komma åt dess samlingar och dokument.
var collections = client.GetDatabase("adventureworks").ListCollectionNames();
Console.WriteLine($"The database has {collections.ToList().Count} collection.");
Hämta en lista över alla databaser
Du kan hämta en lista över alla databaser på servern med hjälp av MongoClient
.
var dbFindList = client.ListDatabaseNames().ToList();
Den här tekniken kan sedan användas för att kontrollera om det redan finns en databas.
var dbFound = dbFindList.FirstOrDefault(x => x == "adventureworks");
if (dbFound is not null)
{
Console.WriteLine($"{dbFound} database found");
}
else
{
Console.WriteLine($"{dbFound} database not found.");
}
Ta bort en databas
En databas tas bort från servern med hjälp av DropDatabase
metoden i DB-klassen.
client.DropDatabase("adventureworks");