次の方法で共有


.NET を使用して Azure Cosmos DB for MongoDB を使ってみる

適用対象: MongoDB

この記事では、.NET Core と関連する NuGet パッケージを使って Azure Cosmos DB for MongoDB に接続する方法について説明します。 接続すると、データベース、コレクション、ドキュメントに対する操作を実行できます。

注意

コード スニペットの例は、.NET Core プロジェクトとして GitHub 上で使用できます。

MongoDB 用 API リファレンス ドキュメント | MongoDB パッケージ (NuGet)

前提条件

新しい .NET Core アプリを作成する

  1. 任意のターミナルを使用して、空のフォルダーに新しい .NET Core アプリケーションを作成します。 このシナリオでは、コンソール アプリケーションを使用します。 dotnet new コマンドを使って、コンソール アプリを作成し、名前を付けます。

    dotnet new console -o app
    
  2. MongoDB NuGet パッケージをコンソール プロジェクトに追加します。 NuGet パッケージの名前を指定する dotnet add package コマンドを使用します。

    dotnet add package MongoDB.Driver
    
  3. アプリを実行するには、ターミナルを使用してアプリケーション ディレクトリに移動し、アプリケーションを実行します。

    dotnet run
    

MongoDB ネイティブ ドライバーを使って Azure Cosmos DB for MongoDB に接続する

MongoDB ネイティブ ドライバーを使って Azure Cosmos DB に接続するには、MongoClient クラスのインスタンスを作成します。 このクラスは、MongoDB データベースに対するすべての操作を実行するための開始点です。 最も一般的な MongoClient のコンストラクターは接続文字列を受け取りますが、これは次の手順を使って取得できます。

リソースの名前を取得する

  1. resourceGroupName のシェル変数を作成します。

    # Variable for resource group name
    resourceGroupName="msdocs-cosmos"
    
  2. az cosmosdb list コマンドを使用して、リソース グループ内の最初の Azure Cosmos DB アカウントの名前を取得し、それを accountName シェル変数に格納します。

    # Retrieve most recently created account name
    accountName=$(
        az cosmosdb list \
            --resource-group $resourceGroupName \
            --query "[0].name" \
            --output tsv
    )
    

接続文字列の取得

  1. az cosmosdb keys list コマンドを使って、アカウントの接続文字列の一覧から MongoDB 用 API の接続文字列を見つけます。

    az cosmosdb keys list --type connection-strings \
        --resource-group $resourceGroupName \
        --name $accountName 
    
  2. "主キー" の値を記録します。 これらの資格情報は後で使用します。

環境変数を構成する

コード内で接続文字列の値を使用するには、アプリケーションを実行しているローカル環境でこの値を設定します。 環境変数を設定するには、任意のターミナルを使用して次のコマンドを実行します。

$env:COSMOS_CONNECTION_STRING = "<cosmos-connection-string>"

接続文字列を使用して MongoClient を作成する

コンストラクターと、以前に設定した接続文字列変数を使って MongoClient クラスの新しいインスタンスを定義します。

// New instance of CosmosClient class
var client = new MongoClient(Environment.GetEnvironmentVariable("COSMOS_CONNECTION_STRING"));

var settings = client.Settings;

Console.WriteLine(settings.Server.Host);

MongoDB 用 API 用の Azure Cosmos DB で MongoDB クライアント クラスを使う

アプリケーションのビルドを開始する前に、Azure Cosmos DB のリソースの階層について説明します。 Azure Cosmos DB には、リソースの作成とアクセスに使用される特定のオブジェクト モデルがあります。 Azure Cosmos DB によって、アカウント、データベース、コレクション、ドキュメントで構成される階層内にリソースが作成されます。

アカウント、データベース、コレクション、ドキュメントを含む Azure Cosmos DB の DB 階層の図。

上部に Azure Cosmos DB の DB アカウントを示す階層図。 アカウントには 2 つの子データベース ノードがあります。 一方のデータベース ノードには、2 つの子コレクション ノードが含まれています。 もう一方のデータベース ノードには、1 つの子コレクション ノードが含まれています。 その 1 つのコレクション ノードには、3 つの子ドキュメント ノードがあります。

各種類のリソースは、1 つまたは複数の関連付けられた C# クラスによって表されます。 以下に最も一般的なクラスの一覧を示します。

クラス 説明
MongoClient このクラスは、Azure Cosmos DB での MongoDB 用 API レイヤーに対するクライアント側の論理表現を提供します。 このクライアント オブジェクトは、サービスに対する要求の構成と実行に使用されます。
MongoDatabase このクラスは、サービスにまだ存在する場合と存在しない場合があるデータベースへの参照です。 データベースは、それに対する操作の実行を試みると、サーバー側で検証または作成されます。
Collection このクラスは、まだサービスに存在しない可能性があるコレクションへの参照です。 コレクションは、操作しようとすると、サーバー側で検証されます。

次のガイドでは、これらの各クラスを使ってアプリケーションをビルドしてデータを管理する方法を示します。

ガイド:

関連項目

次のステップ

MongoDB 用 API アカウントに接続したので、次のガイドを使用してデータベースを作成および管理します。