Manage a MongoDB database using .NET

APPLIES TO: MongoDB

Important

Are you looking for a database solution for high-scale scenarios with a 99.999% availability service level agreement (SLA), instant autoscale, and automatic failover across multiple regions? Consider Azure Cosmos DB for NoSQL.

Your MongoDB server in Azure Cosmos DB is available from the MongoDB NuGet package.

Note

The example code snippets are available on GitHub as a .NET project.

API for MongoDB reference documentation | MongoDB Package (NuGet)

Name a database

In Azure Cosmos DB, a database is analogous to a namespace. When you create a database, the database name forms a segment of the URI used to access the database resource and any child resources.

Once created, the URI for a database is in this format:

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

Create a database instance

You can use the MongoClient to get an instance of a database, or create one if it doesn't exist already. The MongoDatabase class provides access to collections and their documents.

The following code snippet creates a new database by inserting a document into a collection. Remember, the database won't be created until it's needed for this type of operation.

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

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

Get an existing database

You can also retrieve an existing database by name using the GetDatabase method to access its collections and documents.

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

Get a list of all databases

You can retrieve a list of all the databases on the server using the MongoClient.

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

This technique can then be used to check if a database already exists.

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

Drop a database

A database is removed from the server using the DropDatabase method on the DB class.

client.DropDatabase("adventureworks");

See also