Docs Menu

MongoDB に接続する

このページでは、MongoDB Compass を使用して MongoDB ホストに接続する方法を概説しています。スタンドアロン、レプリカセット、またはシャーディングされたクラスター ホストに接続できます。

注意

MongoDB Atlas

MongoDB ホストの作成が必要な場合、MongoDB Atlas を使用するとよいでしょう。Atlas はクラウドでホストされる、サービスとしてのデータベースであり、インストール不要で、手軽に開始できる無料階層を提供します。また、ご使用の配置に Compass を簡単に接続するためのコピー可能な URI も提供します。

Compass のインストールが必要な場合は、「Compass のダウンロードとインストール」で手順を参照してください。

  • レプリカセットに Compass を接続する場合、レプリカセットの個々のノードに直接接続することはお勧めしません。接続先のノードが選挙プロセスの結果、プライマリからセカンダリに、またはその逆に切り替わった場合、Compass は強制的に接続を遮断するか、古いデータを表示する可能性があります。

    レプリカセットに接続する代替策として、接続情報の入力時に、レプリカセットの SRV record または Replica Set Name を使用します。

  • MongoDB Compass 1.19 以降、非正規の MongoDB インスタンスに接続すると、Compass は警告メッセージを表示します。これらのインスタンスは公式の MongoDB インスタンスとは異なる動作をする可能性があります。例として、機能の欠如や不完全な機能、異なる機能の動作などが含まれます。

  • バージョン 1.39.2 以降、MongoDB Compass は、バージョン 1.31.0 以前のレガシー接続ファイルからの移行をサポートしなくなりました。レガシー接続とは、ディスクに保存されている Compass 内部接続オプション形式を指し、バージョン 1.39.0 以降ではサポートされなくなりました。

    お気に入りにレガシー接続が保存されている場合、バージョン 1.39.0に接続をエクスポートして新形式に変換してから、バージョン 1.39.2 以降に更新します。

接続名がすでに Compass ウィンドウのConnections Sidebarにある場合は、接続する接続名をクリックして接続します。

それ以外の場合は、次のいずれかの方法で配置を接続できます。

  • 接続文字列を指定します。

  • Advanced Connection Options を指定します。高度な接続オプションを使用すると、認証、TLS/SSL、SSH 接続オプションを指定できます。詳細については、「高度な接続オプション」を参照してください。

注意

バージョン1.44.0以降、 Compass を介して、一度に複数の MongoDB インスタンスに接続できます。

接続文字列を指定すると、Compass は MongoDB でサポートされているほとんどの接続文字列オプションをサポートします。

Compass のデフォルトの socketTimeoutMS 値は 60000 または 60 秒です。Compass でタイムアウトが頻発する場合、接続文字列でこのオプションの値を引き上げることをおすすめします。

Compass がサポートする接続文字列オプションの完全なリストについては、Github で「 Compass Connection README」を参照してください。

1

の下部のパネルで、Connections Sidebar Add New ConnectionをクリックしてNew Connection モーダルを開きます。

Connections Sidebarにすでに接続がリストされている場合は、クリックしますサイドバーの右上にある アイコンをクリックして、 New Connectionモーダルを開きます。

2

配置用の接続文字列を使用可能な場合、その文字列をダイアログボックスに直接貼り付けることができます。標準接続文字列形式または DNS シードリスト接続形式のいずれかを使用できます。

MongoDB Atlas クラスターの接続文字列を取得するには、以下の手順に従います。

  1. Atlas Clusters ビューに移動します。

  2. 希望するクラスターで [Connect] をクリックします。

  3. [Connect with MongoDB Compass] をクリックします。

  4. 指定された接続文字列をコピーします。

警告

接続文字列を編集するためにクリックしながら MongoDB Compass の接続形式に進むと、Compass はデフォルトで認証情報をプレーンテキストで表示します。

パスワードを公開せずに接続文字列の認証情報を編集するには、Compass 接続フォームの [Advanced Connection Options > Authentication] タブを使用します。

Atlas でホストされない配置の接続文字列の形式を設定する方法については、「接続文字列の URI 形式」を参照してください。

3

名前 フィールドを使用して接続の名前を入力します。 名前を指定しない場合、Compass は接続名としてクラスターのホスト名を使用します。

4

[] ドロップダウン メニューを使用して、接続のラベルの色を選択します。 接続に接続すると、ラベルの色は接続を参照するタブの背景色になります。

5

接続をお気に入りとして保存するには、 モーダルでFavorite this connectionオプションを確認します。

6

Compass のホームページに移動するには、SaveConnect、または Save & Connect をクリックします。

  • [Save] ボタンは接続を保存し、クラスターにまだ接続せずにモーダルを閉じます。

  • Connect ボタンを使用すると、接続文字列や認証情報を保存せずにクラスターに接続できます。

  • デフォルトの[Save & Connect] ボタンは、情報を保存するだけでなく、クラスターに接続します。

重要

必要なアクセス権

MongoDB 配置に接続してからさまざまな Compass 機能にアクセスするには、特定のユーザー ロールが必要になる場合があります。Compass 機能に必要なロールの詳細については、「必要なアクセス権」を参照してください。

高度な接続オプションにより、Compass を MongoDB に接続するための追加の方法が提供されます。このオプションを選択すると、認証、TLS/SSL、SSH を指定して、配置に安全に接続できます。

Compass を使用して接続オプションを指定する方法の詳細については、「 高度な接続オプション 」を参照してください。

Compass セッションはコマンドラインから開始できます。

エンタープライズ環境で、スクリプトを使って起動する場合に Compass の配置を簡素化できます。たとえば、機密システムへのアクセスを制限するには、Compass をジャンプ ホスト上で実行できるようにコマンドラインでの起動を構成できます。

コマンドラインを使用して Compass に接続するには、接続オプションを接続文字列に直接含めるか、コマンドライン引数として含めることができます。

接続文字列で接続オプションを指定するには、次の形式を使用します。

mongodb-compass 'mongodb://username:password@hostname:port/database?ssl=true&replicaSet=myReplicaSet'

その他の接続文字列オプションについては、接続文字列オプションを参照してください。

コマンドライン引数として接続オプションを指定するには、次の形式を使用します。

<path/to/compass/executable> <connection string> --username <username> --password <password>

その他のコマンドライン引数接続オプションについては、コマンドラインから Compass を起動 を参照してください。

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

配置を切断する方法については、「MongoDB からの切断」を参照してください。

次の例では、いくつかの高度な接続文字列オプションを強調表示しています。すべての接続文字列オプションの詳細については、接続文字列オプションを参照してください。

次の接続文字列は、tls URI オプションを使用して TLS を有効にします。 tlsCertificateKeyFile は、クライアント証明書と秘密キーへのパスを指定します。サーバーでクライアント証明書が必要な場合を除き、または X.509認証を使用している場合を除き、接続文字列で tlsCertificateKeyFile を指定するかどうかは任意です。

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db0.example.com/?directConnection=true&tls=true&tlsCAFile=path/to/rootCA.crt&tlsCertificateKeyFile=path/to/server_certificate.pem

SSL を有効にするには、tls=true の代わりに同等の ssl=true オプションを使用します。

次の例は、authMechanism接続文字列オプションを使用して接続文字列で X.509認証を指定する方法を示しています。

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db1.example.com/?authMechanism=MONGODB-X509&tls=true&tlsCertificateKeyFile=/path/to/client_certificate.pem

次の例では、LDAP認証を指定しています。authMechanism plainLDAP認証メカニズムの使用を指定するには、 を に設定し、認証データベースがauthSource $externalであることを示すために を$external に設定します。

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db2.example.com/?authMechanism=PLAIN&authSource=$external

次の例では、 Kerberos認証を指定しています。 Kerberos認証メカニズムを使用するには、authMechanism GSSAPIauthSource$externalを に設定し、認証データベースが であることを示すために を$external に設定します。

mongodb://myDatabaseUser@db3.example.com/?authMechanism=GSSAPI&authSource=$external

接続文字列で読み取り/書込み設定を有効にするには、読み込み設定(read preference)には readPreference オプションを使用し、書込み保証(write concern)には w オプションを使用します。

次の接続文字列は、読み取り設定と書込み設定の両方を設定します。 readPreference=secondary は読み取り操作がレプリカセットのセカンダリ ノードに送信されるよう指定し、w=majority は書込み操作がレプリカセットノードの過半数によって確認されるようにします。

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db4.example.com/database?readPreference=secondary&w=majority

接続文字列で analyticsノードタイプを指定するには

  • readPreferencesecondary に設定して、読み取り操作をセカンダリ ノードに指示することを指定します。

  • readPreferenceTagsnodeType:ANALYTICS に設定して、読み取り操作が分析ノードのみに特定されるようにします。

次の接続文字列は、接続文字列で analyticsノードタイプを指定する方法を示しています。

mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@db5.example.com/myDatabase?readPreference=secondary&readPreferenceTags=nodeType:ANALYTICS

分析ノードを使用してワークロードを分離する方法の詳細については、定義済みレプリカセット タグを使用したクエリを参照してください。