MongoDB Shell (mongosh) は、MongoDB デプロイとやり取りするための JavaScript および Node.js 環境です。 これは、クエリをテストし、Azure DocumentDB クラスター内のデータと対話するための一般的なコミュニティ ツールです。 この記事では、MongoDB シェルを使用して Azure DocumentDB クラスターに接続する方法について説明します。
[前提条件]
Azure サブスクリプション
- Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください
既存の Azure DocumentDB クラスター
- クラスターがない場合は、新しいクラスターを作成します
MongoDB シェル。 詳細については、「MongoDB シェルのインストール」を参照してください。
クライアントがクラスターに接続できるようにするファイアウォール規則。 詳細については、「ファイアウォールの 構成」を参照してください。
クラスターの資格情報を取得する
このクラスターに接続するために必要な接続文字列を取得します。
Azure portal にサインインします (https://portal.azure.com)。
既存の Azure DocumentDB クラスターに移動します。
クラスターへの接続に使用する資格情報を取得します。
クラスター ページで、リソース メニューの [接続文字列 ] オプションを選択します。
[ 接続文字列 ] セクションで、[ 接続文字列 ] フィールドの値をコピーまたは記録します。
Important
ポータルの接続文字列には、パスワードの値は含まれません。
<password> プレースホルダーは、クラスターの作成時に入力した資格情報に置き換えるか、対話形式でパスワードを入力する必要があります。
対話型パスワード認証を使用して接続する
パスワードを含まない接続文字列で MongoDB シェルを使用してクラスターに接続します。 対話型のパスワード プロンプトを使用して、接続手順の一部としてパスワードを入力します。
ターミナルを開きます。
MongoDB シェル プロンプトにパスワードを入力して接続します。 この手順では、パスワードなしで接続文字列を使用します。
mongosh "mongodb+srv://<username>@<cluster-name>.mongocluster.cosmos.azure.com/?tls=true&authMechanism=SCRAM-SHA-256&retrywrites=false&maxIdleTimeMS=120000"パスワードを指定し、正常に認証されたら、表示される警告を確認します。
This server or service appears to be an emulation of MongoDB.ヒント
この警告は無視しても問題ありません。 この警告は、接続文字列に
cosmos.azureが含まれているために生成されます。 Azure DocumentDB は、サービスとしてのネイティブ Azure プラットフォーム (PaaS) オファリングです。シェル コンテキストを終了します。
接続文字列とパスワードを使用して接続する
次に、パスワードを含む接続文字列とパラメーターを使用して、MongoDB シェルからクラスターに接続します。
接続文字列と
--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>"パスワードを指定し、正常に認証されたら、表示される警告を確認します。
------ 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) オファリングです。
テスト クエリの実行
一連のテスト コマンドとクエリを実行して、クラスターに正常に接続されていることを確認します。
connectionStatusコマンドを実行して、接続の状態を確認します。db.runCommand({connectionStatus: 1}){ ... ok: 1 }クラスター内のデータベースを一覧表示します。
show dbs特定のデータベースに切り替えます。
<database-name>プレースホルダーをクラスター内の任意のデータベースの名前に置き換えます。use <database-name>ヒント
たとえば、データベース名が
inventoryされている場合、コマンドはuse inventoryされます。データベース内のコレクションを一覧表示します。
show collections特定のコレクション内の最初の 5 つの項目を検索します。
<collection-name>プレースホルダーをクラスター内のコレクションの名前に置き換えます。db.<collection-name>.find().limit(5)ヒント
たとえば、コレクション名が
equipmentされている場合、コマンドはdb.equipment.find().limit(5)。