Поделиться через


Управление базой данных MongoDB с помощью .NET

Область применения: MongoDB

Сервер MongoDB в Azure Cosmos DB доступен в пакете NuGet для MongoDB.

Примечание.

Примеры фрагментов кода доступны на GitHub в виде проекта .NET.

Справочная документация | по API для MongoDB Package (NuGet)

Имя базы данных

В Azure Cosmos DB база данных аналогична пространству имен. При создании базы данных ее имя формирует сегмент URI, используемого для доступа к ресурсу базы данных и любым дочерним ресурсам.

Ниже приведены краткие правила присвоения имен базам данных.

  • Имена контейнеров могут содержать от 3 до 63 символов
  • Имена контейнеров могут содержать только строчные буквы, цифры или дефис (-).
  • Имя контейнера должно начинаться со строчной буквы или цифры.

После создания 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");

См. также