Docs Menu
Docs Home
/
MongoDB Shell

配置に接続

項目一覧

  • 前提条件
  • サポートされている MongoDB のバージョン
  • インストール mongosh
  • MongoDB Atlas 配置への接続
  • Atlas 接続文字列の取得
  • データベースの認証情報の設定
  • <mongosh> を使用した MongoDB Atlas への接続 mongosh
  • デフォルト ポートでのローカル配置への接続
  • デフォルト以外のポートでのローカル配置への接続
  • リモート ホスト上の配置への接続
  • 接続オプションの指定
  • 認証を使用した接続
  • OpenID Connect を使用した接続
  • LDAP を使用した接続
  • レプリカセットへの接続
  • TLS を使用した接続
  • 特定のデータベースへの接続
  • プロキシ設定
  • 別の配置への接続
  • 現在の接続の検証
  • 配置からの切断
  • 非正規の配置
  • 制限

このページでは、MongoDB Shell を使用して MongoDB 配置に接続する方法を説明します。MongoDB Shell を使用すると、MongoDB Atlas クラウドホスト型配置、ローカル配置、または別のリモート ホストに接続できます。

MongoDB Shell を使用するには、接続する MongoDB 配置が必要です。

  • 無料のクラウドホスト型配置には、MongoDB Atlas を使用できます。

  • MongoDB をローカル配置の実行方法については、「MongoDB のインストール」を参照してください。

MongoDB Shell を使用して MongoDB バージョン 4.2 以降に接続できます。

以下の手順は mongosh がすでにインストールされていることを前提としています。mongosh のインストールに関する詳細については、mongosh のインストール」を参照してください。

MongoDB Atlas 配置には、直接 shell から接続できます。

1

MongoDB Shell から接続するには、Atlas 接続文字列が必要です。MongoDB Atlas の接続文字列は、Atlas UI で取得できます。

詳細については、「MongoDB Atlas 接続文字列の特定」ガイドを参照してください。

2

データベース ユーザーの作成がまだ完了していない場合は、ユーザー名とパスワードの設定が必要です。 Atlasに接続するには、ユーザー名とともにAtlas接続stringを渡します。 connect コマンドを出すと、shell からパスワードの入力を求められます。

3

接続を確立するには、接続文字列と接続を確立用オプションを指定して mongosh コマンドを実行します。

接続文字列には、次の要素が含まれます。

  • クラスター名

  • ハッシュ

  • API バージョンのフラグ

  • 接続用ユーザー名のフラグ

これは、次のような文字列になります。

mongosh "mongodb+srv://YOUR_CLUSTER_NAME.YOUR_HASH.mongodb.net/" --apiVersion YOUR_API_VERSION --username YOUR_USERNAME

注意

詳細

mongosh 経由で Atlas に接続するには、他の接続セキュリティ オプションを使用できます。ピアリングまたはプライベート エンドポイント接続用のプライベート IP での接続については、「mongosh 経由での Atlas Connect」ドキュメントを参照してください。

デフォルト ポート 27017 を使用して localhost で実行されている MongoDB の配置に接続するには、mongosh をオプションなしで実行します。

mongosh

これは、次のコマンドと同等です。

mongosh "mongodb://localhost:27017"

ローカルホストへの接続ポートを指定するには、次のいずれかを使用できます。

  • 選択したポートとの接続文字列

  • --port コマンドライン オプション

たとえば、以下は localhost ポート 28015 で実行中の配置への接続コマンドです。

mongosh "mongodb://localhost:28015"
mongosh --port 28015

リモート ホストとポートを指定するには、次のいずれかを使用できます。

  • 選択したホストとポートとの接続文字列

  • --host--port のコマンドライン オプション。--port オプションを省略すると、mongosh はデフォルトのポート 27017 を使用します。

たとえば、次のコマンドを使用すると、ホストmongodb0.example.com とポート 28015 で実行されている MongoDB の配置に接続します。

mongosh "mongodb://mongodb0.example.com:28015"
mongosh --host mongodb0.example.com --port 28015

注意

MongoDB Atlas への接続

リモートホストが Atlas クラスターである場合は、Atlas UI から接続文字列をコピーできます。詳細については、Atlas ドキュメントの「クラスターへの接続」を参照してください。

異なるタイプの配置に接続するには、異なる接続オプションを指定します。

認証が必要な MongoDB 配置に接続するには、--username--authenticationDatabase オプションを使用します。mongosh ではパスワードの入力が指示されます。パスワードは入力時に非表示になります。

たとえば、admin データベースでユーザー alice として認証するには、次のコマンドを実行します。

mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin

プロンプトを使用する代わりに、接続コマンドの一部としてパスワードを入力するには、--password オプションを使用します。ドライバーのように、mongosh をプログラムとして使用する場合は、このオプションを選択します。

Tip

以下も参照してください。

OpenID Connect を使用して配置に接続するには、--authenticationMechanism オプションを MONGODB-OIDC に設定して使用します。mongosh によってリダイレクトされる画面で、IdP のログイン情報を入力してください。

たとえば、次の例では、MONGODB-OIDC を使用してローカル配置に接続しています。

mongosh "mongodb://localhost/" --authenticationMechanism MONGODB-OIDC

LDAP を使用して配置に接続するには、以下に従います。

  • --usernameを、security.ldap.authz.queryTemplateまたは構成されたsecurity.ldap.userToDNMappingテンプレートに準拠したユーザー名に設定します。

  • --password を適切なパスワードに設定します。--password コマンドライン オプションにパスワードを指定しない場合は、mongosh からパスワードの入力を求められます。

  • --authenticationDatabase$external に設定します。shell が $external を変数と解釈するのを防ぐには、$external 引数を二重引用符ではなく一重引用符で囲む必要があります。

  • --authenticationMechanismPLAIN に設定します。

警告

LDAP 認証でワンタイム パスワードを使用する場合は、接続失敗の可能性を減らすために、接続文字列 オプションmaxPoolSize=1&srvMaxHosts=1を接続文字列に追加することをお勧めします。

MongoDB 配置の --host--port を、配置に関連するその他のオプションとともに含めます。

たとえば、次の操作は、LDAP 認証と承認で実行されている MongoDB 配置に対して認証を行います。

mongosh --username alice@dba.example.com --password --authenticationDatabase '$external' --authenticationMechanism "PLAIN" --host "mongodb.example.com" --port 27017

レプリカセットに接続するには、次のいずれかの方法を実行します。

DNS シードリスト接続形式を使用するには、接続文字列に+srv 修飾子を含めます。

たとえば、server.example.com 上のレプリカセットに接続するには、次のコマンドを実行します。

mongosh "mongodb+srv://server.example.com/"

注意

+srv TLS の動作

+srv 接続文字列修飾子を使用すると、MongoDB は --tls 接続オプションを true に自動的に設定します。この動作を上書きするには、--tlsfalse に設定します。

レプリカセット ノードを個別に接続文字列で指定できます。

たとえば、replA という名前の 3 ノードのレプリカセットに接続するには、次のコマンドを実行します。

mongosh "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"

注意

directConnection パラメーターは自動的に追加されます

接続文字列で個々のレプリカセット ノードを指定すると、次のいずれかが true である場合を除き、mongoshdirectConnection=true パラメーターを自動的に追加します。

  • 接続文字列に replicaSet クエリパラメーターが存在する。

  • 接続文字列が mongodb+srv:// 接続文字列フォーマットを使用している。

  • 接続文字列に複数のホストを含むシードリストが含まれている。

  • 接続文字列に directConnection パラメーターが既に含まれている。

directConnection=true の場合、すべての操作は接続 URI で指定されたホスト上で実行されます。

TLS を使用して配置に接続するには、次のいずれかの方法を選択できます。

  • DNS シードリスト接続形式を使用します。+srv 接続文字列修飾子が、接続用オプションの tls を自動的に true に設定します。

    たとえば、tls が有効になっている DNS シードリストを定義済みのレプリカセットに接続するには、次のコマンドを実行します。

    mongosh "mongodb+srv://server.example.com/"
  • 接続文字列で --tls オプションを true に設定します。

    たとえば、接続文字列オプションで tls を有効にするには、次のコマンドを実行します。

    mongosh "mongodb://mongodb0.example.com:28015/?tls=true"
  • --tls コマンドライン オプションを指定します。

    たとえば、tls が有効になっているリモート ホストに接続するには、次のコマンドを実行します。

    mongosh "mongodb://mongodb0.example.com:28015" --tls

特定のデータベースに接続するには、接続文字列の URI パスでデータベースを指定します。URI パスでデータベースを指定しない場合は、test データベースに接続します。

たとえば、localhost 上のデータベース「qa」に接続するには、次のコマンドを実行します。

mongosh "mongodb://localhost:27017/qa"

プロキシ構成との接続を確立するには、次の環境変数を使用できます。

変数
説明
MONGODB_PROXY
データベース クラスターなど、 mongodb://mongodb+srv:// URL へのプロキシ接続。

次の例では、TLS が有効になっているexample.com:8080にある CONNECT プロキシ を介してすべての MongoDB 接続をプロキシするようにMONGODB_PROXY環境変数を設定します。

export MONGODB_PROXY=https://example.com:8080
HTTP_PROXY

http:// URL へのプロキシ接続。 HTTP 接続は、ほとんどの場合、OIDC 認証に使用されます。

HTTPS_PROXYも設定している場合は、 HTTPS_PROXYの値がすべてのリクエストに対して優先されます。

次の例えではexample.com:8080にある CONNECT プロキシ を介して HTTP 接続をプロキシするようにHTTP_PROXY環境変数を設定します。

export HTTP_PROXY=http://example.com:8080
HTTPS_PROXY

https:// URL へのプロキシ接続。 HTTPS 接続は、ほとんどの場合、OIDC 認証に使用されます。

HTTP_PROXYも設定している場合は、 HTTPS_PROXYの値がすべてのリクエストに対して優先されます。

次の例では、TLS を使用せずにlocalhost:8080にある CONNECT プロキシ を介してすべての HTTPS 接続をプロキシするようにHTTPS_PROXY環境変数を設定します。

export HTTPS_PROXY=http://localhost:8080
ALL_PROXY
指定された URL へのすべての接続をプロキシします。

次の例では、URL に認証情報が含まれるexample.com:1234にある Socks 5プロキシを介して、すべてのアウトバウンド ネットワーク接続をプロキシするようにALL_PROXY環境変数を設定します。

export ALL_PROXY=socks5://username:password@example.com:1234
NO_PROXY
プロキシから除外するホスト名のコンマ区切りリスト。

次の例では、 localhostinternal-db.example.comへの接続でプロキシをバイパスするようにNO_PROXY環境変数を設定します。

export NO_PROXY=localhost,internal-db.example.com

注意

mongosh は、次のプロキシ タイプをサポートします。

  • Socks 5プロキシ

  • HTTP プロキシ

  • CONNECT プロキシ

  • 以前にリストされたプロキシのいずれかに解決されるPAC URL

MongoDB Shell の配置にすでに接続している場合は、Mongo() または connect() メソッドを使用して、MongoDB Shell 内から別の配置に接続できます。

これらのメソッドを使用して別の配置に接続する方法については、「新しい接続の開き方」を参照してください。

現在のデータベース接続を確認するには、db.getMongo() メソッドを使用します。

このメソッドでは、現在の接続の接続文字列 URIが返されます。

配置から切断して mongosh を終了するには、次のいずれかのアクションを実行します。

  • .exitexit、またはexit() と入力します。

  • quit または quit() と入力します。

  • Ctrl + D を押します。

  • Ctrl + C を 2 回押します。

非正規の MongoDB インスタンスに接続すると、shell に警告メッセージが表示されます。非正規品のインスタンスは、機能が不足していたり、整合性や完全性に不備があったりするため、正規の MongoDB インスタンスと動作が異なる場合があります。

  • Kerberos 認証では、authMechanismProperties=CANONICALIZE_HOST_NAME:true|false を接続文字列で使用できません。代わりに、次のいずれかを使用します。

    • authMechanismProperties=CANONICALIZE_HOST_NAME:forward

    • authMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverse

    • authMechanismProperties=CANONICALIZE_HOST_NAME:none

  • mongosh は、現在、zlib コンプレッサーのみをサポートしています。次のコンプレッサーはサポートされていません。

    • zstd

    • snappy

  • mongosh 2.0.0 以降で起動する場合

    接続文字列内のブール値には次の条件があります。

    • true または false を使用する必要があります。

    • true の代わりに、1yyes、またはt を使用できません。

    • false の代わりに、-10nno、または f を使用できません。

戻る

Windows パッケージの検証