MongoDB に接続する
このページでは、MongoDB Compass を使用して MongoDB ホストに接続する方法を概説しています。スタンドアロン、レプリカセット、またはシャーディングされたクラスター ホストに接続できます。
注意
MongoDB Atlas
MongoDB ホストの作成が必要な場合、MongoDB Atlas を使用するとよいでしょう。Atlas はクラウドでホストされる、サービスとしてのデータベースであり、インストール不要で、手軽に開始できる無料階層を提供します。また、ご使用の配置に Compass を簡単に接続するためのコピー可能な URI も提供します。
Compass のインストールが必要な場合は、「Compass のダウンロードとインストール」で手順を参照してください。
Considerations
レプリカセットに 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」を参照してください。
接続文字列を貼り付けます。
配置用の接続文字列を使用可能な場合、その文字列をダイアログボックスに直接貼り付けることができます。標準接続文字列形式または DNS シードリスト接続形式のいずれかを使用できます。
MongoDB Atlas クラスターの接続文字列を取得するには、以下の手順に従います。
Atlas Clusters ビューに移動します。
希望するクラスターで [Connect] をクリックします。
[Connect with MongoDB Compass] をクリックします。
指定された接続文字列をコピーします。
警告
接続文字列を編集するためにクリックしながら MongoDB Compass の接続形式に進むと、Compass はデフォルトで認証情報をプレーンテキストで表示します。
パスワードを公開せずに接続文字列の認証情報を編集するには、Compass 接続フォームの [Advanced Connection Options > Authentication] タブを使用します。
Atlas でホストされない配置の接続文字列の形式を設定する方法については、「接続文字列の URI 形式」を参照してください。
クラスターに接続します。
Compass のホームページに移動するには、Save、Connect、または Save & Connect をクリックします。
[Save] ボタンは接続を保存し、クラスターにまだ接続せずにモーダルを閉じます。
Connect ボタンを使用すると、接続文字列や認証情報を保存せずにクラスターに接続できます。
デフォルトの[Save & Connect] ボタンは、情報を保存するだけでなく、クラスターに接続します。
高度な接続オプションの使用
高度な接続オプションにより、Compass を MongoDB に接続するための追加の方法が提供されます。このオプションを選択すると、認証、TLS/SSL、SSH を指定して、配置に安全に接続できます。
Compass を使用して接続オプションを指定する方法の詳細については、「 高度な接続オプション 」を参照してください。
コマンドラインから 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 のオプション
次の接続文字列は、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
オプションを使用します。
x.509 認証
次の例は、authMechanism
接続文字列オプションを使用して接続文字列で X.509認証を指定する方法を示しています。
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db1.example.com/?authMechanism=MONGODB-X509&tls=true&tlsCertificateKeyFile=/path/to/client_certificate.pem
LDAP
次の例では、LDAP認証を指定しています。authMechanism
plain
LDAP認証メカニズムの使用を指定するには、 を に設定し、認証データベースがauthSource
$external
であることを示すために を$external
に設定します。
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db2.example.com/?authMechanism=PLAIN&authSource=$external
Kerberos
次の例では、 Kerberos認証を指定しています。 Kerberos認証メカニズムを使用するには、authMechanism
GSSAPI
authSource
$external
を に設定し、認証データベースが であることを示すために を$external
に設定します。
mongodb://myDatabaseUser@db3.example.com/?authMechanism=GSSAPI&authSource=$external
読み込み設定 (read preference)/書込み設定 (write preference)
接続文字列で読み取り/書込み設定を有効にするには、読み込み設定(read preference)には readPreference
オプションを使用し、書込み保証(write concern)には w
オプションを使用します。
次の接続文字列は、読み取り設定と書込み設定の両方を設定します。 readPreference=secondary
は読み取り操作がレプリカセットのセカンダリ ノードに送信されるよう指定し、w=majority
は書込み操作がレプリカセットノードの過半数によって確認されるようにします。
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db4.example.com/database?readPreference=secondary&w=majority
分析ノード
接続文字列で analytics
ノードタイプを指定するには
readPreference
をsecondary
に設定して、読み取り操作をセカンダリ ノードに指示することを指定します。readPreferenceTags
をnodeType:ANALYTICS
に設定して、読み取り操作が分析ノードのみに特定されるようにします。
次の接続文字列は、接続文字列で analytics
ノードタイプを指定する方法を示しています。
mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@db5.example.com/myDatabase?readPreference=secondary&readPreferenceTags=nodeType:ANALYTICS
分析ノードを使用してワークロードを分離する方法の詳細については、定義済みレプリカセット タグを使用したクエリを参照してください。