接続ガイド
このガイドでは、Node.js ドライバーを使用して MongoDB Atlas 配置、MongoDB インスタンス、またはレプリカセットに接続する方法を説明します。
接続URI
接続 URI は、ドライバが MongoDB 配置に接続するための指示のセットです。これは、ドライバーに MongoDB への接続方法と接続中の動作を指示します。次の例は、接続 URI の各部分を示しています。
この例では、DNS SRV レコードを持つ Atlas MongoDB 配置に接続します。詳細については、DNS シードリスト接続形式のドキュメントを参照してください。この形式を使うと、柔軟な配置が可能になるとともに、クライアントを再構成しなくてもサーバーをローテーションして変更することができます。
注意
stringAtlasAtlasで接続 を取得する方法については、 ドライバー接続ガイド を参照してください。
DNS SRV アドレスを持たないインスタンスまたはレプリカセットに接続する場合は、プロトコルとして標準接続文字列形式を指定する mongodb
を使用する必要があります。
パスワードベースの認証を使用している場合、プロトコルの後の接続文字列の次の部分には認証情報が含まれます。user
の値をユーザー名に、pass
の値をパスワードに置き換えます。ユーザー名とパスワードを必要としない認証メカニズムを使用している場合は、接続 URI のこの部分を省略します。
接続文字列の次の部分は、MongoDB インスタンスのホスト名または IP アドレスを指定し、その後にポート番号を指定します。上記の例では、ホスト名としてsample.host
を使用し、ポートとして27017
を使用します。これらの値を置き換えて、MongoDB インスタンスを点ようにします。
接続文字列の最後の部分には、パラメーターとして接続オプションと認証オプションが含まれています。上記の例では、2 つの接続オプションmaxPoolSize=20
とw=majority
を設定しています。接続オプションの詳細については、「接続オプション」セクションを参照してください。
Atlas 接続例
Atlas 上の MongoDB 配置に接続するには、クライアントを作成する必要があります。クライアントを作成するには、URI とMongoClientOptions
オブジェクトを渡してMongoClient
のインスタンスを構築します。
Tip
クライアントの再利用
各 MongoClient
はデータベースへの接続のプールを表すため、ほとんどのアプリケーションでは、複数のリクエスト間でも必要な MongoClient
インスタンスは 1 つだけです。ドライバーで接続プールがどのように機能するかについて詳しくは、FAQページをご覧ください。
MongoClientOptions
オブジェクトのserverApi
オプションを使用して Stable API 機能を有効にします。これにより、サーバーは指定された API バージョンと互換性のある動作で操作を強制的に実行します。
次のコードは、Atlas 上の MongoDB 配置に接続するときに接続文字列と Stable API クライアント オプションを指定し、接続が成功したことを確認する方法を示します。
const { MongoClient, ServerApiVersion } = require("mongodb"); // Replace the placeholder with your Atlas connection string const uri = "<connection string>"; // Create a MongoClient with a MongoClientOptions object to set the Stable API version const client = new MongoClient(uri, { serverApi: { version: ServerApiVersion.v1, strict: true, deprecationErrors: true, } } ); async function run() { try { // Connect the client to the server (optional starting in v4.7) await client.connect(); // Send a ping to confirm a successful connection await client.db("admin").command({ ping: 1 }); console.log("Pinged your deployment. You successfully connected to MongoDB!"); } finally { // Ensures that the client will close when you finish/error await client.close(); } } run().catch(console.dir);
注意
Node.js ドライバーは、クライアントを使用して MongoDB 配置で CRUD 操作を実行するときに、 MongoClient.connect()
メソッドを自動的に呼び出します。接続が成功したことを確認する場合は、 MongoClient.connect()
メソッドを明示的に呼び出します。
Stable API 機能について詳しくは、「Stable API」ページをご覧ください。
MongoDB に接続する他の方法
Atlas でホストされていない単一の MongoDB Server インスタンスまたはレプリカセットに接続する場合は、次のセクションで接続方法を確認してください。
ローカルマシン上の MongoDB Server への接続
ローカルマシン上の MongoDB 配置に接続するには、以下のステップを実行します。
MongoDB Server の Communityバージョン または Enterprise バージョンをダウンロードします。
MongoDB Serverをインストールして構成します。
サーバーを起動します。
重要
MongoDB サーバーを悪意のある攻撃から常に保護します。セキュリティ推奨事項のリストについては、「セキュリティ チェックリスト」を参照してください。
MongoDB Server を正常に開始したら、ドライバー接続コードで接続文字列を指定します。
MongoDB Server がローカルで実行されている場合は、次の接続文字列を使用できます。
mongodb://localhost:<port>
この接続文字列では、 <port>
は、着信接続をリッスンするようにサーバーを設定したポート番号です。
別のホスト名または IP アドレスを指定する場合は、サーバー マニュアルの「接続文字列 」に関する記述を参照してください。
サーバーに接続できるかどうかをテストするには、 への接続 に 記載のコード例の接続string MongoDBを置き換えて実行します。
レプリカセットへの接続
MongoDB レプリカセットの配置は、同じデータ セットを保存する接続されたインスタンスのグループです。このインスタンスの構成は、データの冗長性と高いデータ可用性を提供します。
レプリカセットの配置に接続するには、各インスタンスのホスト名とポート番号をカンマで区切って指定し、レプリカセット名を接続文字列の replicaSet
パラメーターの値として指定します。
mongodb://host1:27017,host2:27017,host3:27017/?replicaSet=myRs
接続を行う際、ドライバーはデフォルトで次のアクションを実行します。
いずれかのノードのアドレスが指定されると、レプリカセットのすべてのノードを検出します。
プライマリノードへの書き込みなどの操作を適切なノードにディスパッチします。
Tip
すべてのホストを指定
1 つのホストが使用できない場合に接続を確保するには、レプリカセットに接続するときにホストの完全なリストを提供します。
直接接続
接続 URI で指定されたホスト上で操作を強制的に実行するには、 directConnection
接続オプションを指定できます。このオプションを指定する場合は、標準の接続 URI 形式を使用する必要があります。このオプションを指定すると、ドライバーは DNS シードリスト接続形式(SRV)を受け入れません。
directConnection
を指定してレプリカセットのセカンダリ ノードに接続した場合、クライアントがプライマリ ノードに接続されていないため、書き込み操作は失敗します。読み取り操作を実行するには、セカンダリ読み取りを有効にする必要があります。詳細については、読み込み設定(read preference)オプションを参照してください。