.NET を使用して MongoDB データベースを管理する
適用対象: MongoDB
Azure Cosmos DB の MongoDB サーバーは、MongoDB NuGet パッケージから入手できます。
注意
コード スニペットの例は、.NET プロジェクトとしてGitHub 上で使用できます。
MongoDB 用 API リファレンス ドキュメント | MongoDB パッケージ (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.");
}
データベースの削除
サーバーからデータベースを削除するには、DB クラスの DropDatabase
メソッドを使います。
client.DropDatabase("adventureworks");