MongoClient の作成
Overview
MongoDB 配置に接続するには、次の 2 つのものが必要です。
接続 URI は、接続文字列とも呼ばれます。これは、接続するMongoDBデプロイをNode.jsドライバーに指示します。
MongoClientオブジェクト。 への接続を作成し、 MongoDBデプロイで操作を実行します。
MongoClientOptions
を使用して、 MongoDB .に接続しているNode.jsドライバーの動作をカスタマイズすることもできます。
このガイドでは、接続stringを作成し、MongoClient
オブジェクトを使用してMongoDBに接続する方法について説明します。
接続URI
標準の接続stringには次のコンポーネントが含まれます。
コンポーネント | 説明 |
---|---|
| 必須: これを標準接続形式の文字列として識別するプレフィックス。 |
| 任意。認証資格情報。これらを含めると、クライアントは |
| 必須。 MongoDB が実行されているホストとオプションのポート番号。 ポート番号を指定しない場合、ドライバーはデフォルトのポート |
| 任意。接続文字列に |
| 任意。 接続固有のオプションを |
接続 の作成の詳細については、string MongoDB Serverドキュメントの「 接続 文字列 」を参照してください。
Atlas 接続例
Atlas 上の MongoDB 配置に接続するには、クライアントを作成する必要があります。クライアントを作成するには、URI とMongoClientOptions
オブジェクトを渡してMongoClient
のインスタンスを構築します。
Tip
クライアントの再利用
各 MongoClient
はデータベースへの接続のプールを表すため、ほとんどのアプリケーションでは、複数のリクエスト間でも必要な MongoClient
の 1 つのインスタンスのみが必要です。ドライバーで接続プールがどのように機能するかについて詳しくは、「 接続プール 」のページを参照してください。
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」ページをご覧ください。
低速操作による他の操作の遅延を防ぐ
同じ MongoClient
インスタンスを使用して複数のMongoDB操作を同時に実行すると、低速操作によって他の操作が遅れる可能性があります。遅い操作ではMongoDBへの接続が専有され続け、そのため、別の接続が利用可能になるまで他の操作が待機する恐れがあります。
MongoDB の低速操作が遅延の原因になっていると思われる場合は、次の方法を使用して、進行中のすべての操作のパフォーマンスを確認できます。
配置でデータベースプロファイラーを有効にします。 詳細については、サーバー マニュアルの「データベースプロファイラ」を参照してください。
db.currentOp()
MongoDB Shell コマンドを実行します。 詳細については、サーバー マニュアルのdb.currentOp()ドキュメントを参照してください。接続プールのモニタリングを有効にします。詳細については、「 接続プール イベント 」を参照してください。
遅延の原因となっている操作を特定したら、これらの操作のパフォーマンスを向上させるようにしてください。 可能な解決策については、「 MongoDB パフォーマンスのベストプラクティス ガイド 」をお読みください。
パフォーマンスに関するベストプラクティスを実装しても遅延が発生する場合は、接続設定を変更して接続プールのサイズを増やすことができます。 接続プールは、ドライバーが常に維持するサーバーへの接続のグループです。
接続プールの最大サイズを指定するには、 MongoClient
インスタンスの接続オプションでmaxPoolSize
オプションを設定します。 maxPoolSize
のデフォルト値は100
です。 サーバーへの使用中の接続数がmaxPoolSize
に達した場合、ドライバーへの接続が利用可能になるまでサーバーに送信される次の操作は一時停止します。 次のコードでは、新しいMongoClient
を作成するときに、 maxPoolSize
を150
に設定します。
const client = new MongoClient(uri, { maxPoolSize: 150 });
Tip
接続プーリングの詳細については、[ 接続プール ] ページの「 接続プールの概要 」セクションを参照してください。
API ドキュメント
Node.jsドライバーを使用して MongoClient
オブジェクトを作成する方法の詳細については、次のAPIドキュメントを参照してください。