Azure Cosmos DB MongoDB API と JavaScript の概要

適用対象: MongoDB 用 Azure Cosmos DB API

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

Note

コード スニペットの例は、JavaScript プロジェクトとして GitHub で入手できます。

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

前提条件

新しい JavaScript アプリを作成する

  1. 任意のターミナルを使用して、空のフォルダーに新しい JavaScript アプリケーションを作成します。 npm init コマンドを使用して、package.json ファイルを作成するためのプロンプトを開始します。 プロンプトの既定値をそのまま使用します。

    npm init
    
  2. MongoDB npm パッケージを JavaScript プロジェクトに追加します。 npm パッケージの名前を指定して npm install package コマンドを使用します。 dotenv パッケージは、ローカルでの開発中に .env ファイルから環境変数を読み取るために使用されます。

    npm install mongodb dotenv
    
  3. アプリを実行するには、ターミナルを使用してアプリケーション ディレクトリに移動し、アプリケーションを実行します。

    node index.js
    

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

MongoDB ネイティブ ドライバーを使用して Azure Cosmos DB に接続するには、MongoClient クラスのインスタンスを作成します。 このクラスは、データベースに対するすべての操作を実行するための開始点です。

MongoClient の最も一般的なコンストラクターには、次の 2 つのパラメーターがあります。

パラメーター 値の例 説明
url COSMOS_CONNECTION_STRIN 環境変数 すべての要求に使用する MongoDB API の接続文字列
options {ssl: true, tls: true, } 接続の MongoDB オプション

接続の問題については、トラブルシューティング ガイドに関する記事をご覧ください。

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

  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 list-connection-strings コマンドを使用して、アカウントの接続文字列の一覧から MongoDB API の接続文字列を見つけます。

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

環境変数を構成する

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

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

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

  1. 依存関係を追加して、MongoDB と DotEnv npm パッケージを参照します。

    // Read .env file and set environment variables
    require('dotenv').config();
    
    // Use official mongodb driver to connect to the server
    const { MongoClient } = require('mongodb');
    
  2. コンストラクターを使って MongoClient, クラスの新しいインスタンスを定義し、接続文字列を使うための process.env. を定義します。

    // New instance of MongoClient with connection string
    // for Cosmos DB
    const url = process.env.COSMOS_CONNECTION_STRING;
    const client = new MongoClient(url);
    
    // connect to the server
    await client.connect();
    
    // client options
    const options = client.options
    console.log(`Options:\n${Object.keys(options).map(key => `\t${key}: ${options[key]}\n`)}`);
    

MongoClient インスタンスを作成するさまざまな方法の詳細については、MongoDB NodeJS ドライバーのクイックスタートに関するページをご覧ください。

MongoClient 接続を閉じる

アプリケーションが接続を終了したら、必ず閉じてください。 すべてのデータベース呼び出しが行われた後で、.close() を呼び出す必要があります。

client.close()

Cosmos DB for MongoDB API で MongoDB クライアント クラスを使用する

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

Diagram of the Azure Cosmos D B hierarchy including accounts, databases, collections, and docs.

Hierarchical diagram showing an Azure Cosmos D B account at the top. The account has two child database nodes. One of the database nodes includes two child collection nodes. The other database node includes a single child collection node. That single collection node has three child doc nodes.

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

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

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

ガイド:

関連項目

次のステップ

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