次の方法で共有


MongoDB シェルを使用して Azure DocumentDB に接続する

MongoDB Shell (mongosh) は、MongoDB デプロイとやり取りするための JavaScript および Node.js 環境です。 これは、クエリをテストし、Azure DocumentDB クラスター内のデータと対話するための一般的なコミュニティ ツールです。 この記事では、MongoDB シェルを使用して Azure DocumentDB クラスターに接続する方法について説明します。

[前提条件]

  • Azure サブスクリプション

    • Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください
  • 既存の Azure DocumentDB クラスター

  • MongoDB シェル。 詳細については、「MongoDB シェルのインストール」を参照してください。

  • クライアントがクラスターに接続できるようにするファイアウォール規則。 詳細については、「ファイアウォールの 構成」を参照してください。

クラスターの資格情報を取得する

このクラスターに接続するために必要な接続文字列を取得します。

  1. Azure portal にサインインします (https://portal.azure.com)。

  2. 既存の Azure DocumentDB クラスターに移動します。

クラスターへの接続に使用する資格情報を取得します。

  1. クラスター ページで、リソース メニューの [接続文字列 ] オプションを選択します。

  2. [ 接続文字列 ] セクションで、[ 接続文字列 ] フィールドの値をコピーまたは記録します。

接続文字列オプションを示すスクリーンショット。

Important

ポータルの接続文字列には、パスワードの値は含まれません。 <password> プレースホルダーは、クラスターの作成時に入力した資格情報に置き換えるか、対話形式でパスワードを入力する必要があります。

対話型パスワード認証を使用して接続する

パスワードを含まない接続文字列で MongoDB シェルを使用してクラスターに接続します。 対話型のパスワード プロンプトを使用して、接続手順の一部としてパスワードを入力します。

  1. ターミナルを開きます。

  2. MongoDB シェル プロンプトにパスワードを入力して接続します。 この手順では、パスワードなしで接続文字列を使用します。

    mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"
    
  3. パスワードを指定し、正常に認証されたら、表示される警告を確認します。

    This server or service appears to be an emulation of MongoDB.
    

    ヒント

    この警告は無視しても問題ありません。 この警告は、接続文字列に cosmos.azure が含まれているために生成されます。 Azure DocumentDB は、サービスとしてのネイティブ Azure プラットフォーム (PaaS) オファリングです。

  4. シェル コンテキストを終了します。

接続文字列とパスワードを使用して接続する

次に、パスワードを含む接続文字列とパラメーターを使用して、MongoDB シェルからクラスターに接続します。

  1. 接続文字列と --username--password 引数を使用して接続します。

    mongosh "mongodb+srv://<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000" --username "<username>" -password "<password>"
    
  2. パスワードを指定し、正常に認証されたら、表示される警告を確認します。

    ------
       Warning: Non-Genuine MongoDB Detected
       This server or service appears to be an emulation of MongoDB rather than an official MongoDB product.
    ------
    

    ヒント

    この警告は無視しても問題ありません。 この警告は、接続文字列に cosmos.azure が含まれているために生成されます。 Azure DocumentDB は、サービスとしてのネイティブ Azure プラットフォーム (PaaS) オファリングです。

テスト クエリの実行

一連のテスト コマンドとクエリを実行して、クラスターに正常に接続されていることを確認します。

  1. connectionStatus コマンドを実行して、接続の状態を確認します。

    db.runCommand({connectionStatus: 1})
    
    {
      ...
      ok: 1
    }
    
  2. クラスター内のデータベースを一覧表示します。

    show dbs
    
  3. 特定のデータベースに切り替えます。 <database-name> プレースホルダーをクラスター内の任意のデータベースの名前に置き換えます。

    use <database-name>
    

    ヒント

    たとえば、データベース名が inventoryされている場合、コマンドは use inventoryされます。

  4. データベース内のコレクションを一覧表示します。

    show collections
    
  5. 特定のコレクション内の最初の 5 つの項目を検索します。 <collection-name> プレースホルダーをクラスター内のコレクションの名前に置き換えます。

    db.<collection-name>.find().limit(5)
    

    ヒント

    たとえば、コレクション名が equipmentされている場合、コマンドは db.equipment.find().limit(5)