Управление базой данных MongoDB с помощью .NET
Область применения: MongoDB
Сервер MongoDB в Azure Cosmos DB доступен в пакете NuGet для MongoDB.
Примечание.
Примеры фрагментов кода доступны на GitHub в виде проекта .NET.
Справочная документация | по API для MongoDB Package (NuGet)
Имя базы данных
В Azure Cosmos DB база данных аналогична пространству имен. При создании базы данных ее имя формирует сегмент URI, используемого для доступа к ресурсу базы данных и любым дочерним ресурсам.
После создания URI базы данных имеет следующий формат:
https://<cosmos-account-name>.documents.azure.com/dbs/<database-name>
Создание экземпляра базы данных
Вы можете использовать MongoClient
для получения экземпляра базы данных или создать его, если он еще не существует. Класс MongoDatabase
предоставляет доступ к коллекциям и документам в них.
Следующий фрагмент кода создает новую базу данных, вставляя документ в коллекцию. Помните, что база данных не будет создана, пока она не потребуется для этой операции.
var client = new MongoClient(Environment.GetEnvironmentVariable("MONGO_CONNECTION"));
client.GetDatabase("adventureworks").GetCollection<BsonDocument>("products").InsertOne(new BsonDocument() { { "Name", "surfboard" } });
Использование существующей базы данных
Вы также можете получить существующую базу данных по известному имени, используя метод GetDatabase
для обращения к ее коллекциям и документам.
var collections = client.GetDatabase("adventureworks").ListCollectionNames();
Console.WriteLine($"The database has {collections.ToList().Count} collection.");
Получение списка всех баз данных
Полный список баз данных на сервере можно получить с помощью MongoClient
.
var dbFindList = client.ListDatabaseNames().ToList();
Этот метод позволяет проверить, существует ли база данных.
var dbFound = dbFindList.FirstOrDefault(x => x == "adventureworks");
if (dbFound is not null)
{
Console.WriteLine($"{dbFound} database found");
}
else
{
Console.WriteLine($"{dbFound} database not found.");
}
Удаление базы данных
База данных удаляется с сервера с помощью метода DropDatabase
класса DB.
client.DropDatabase("adventureworks");