Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs Menu
Docs Home
/ / /
Node.js ドライバー
/

MongoClient の作成

MongoDB 配置に接続するには、次の 2 つのものが必要です。

  • 接続 URI は、接続文字列とも呼ばれます。これは、接続するMongoDBデプロイをNode.jsドライバーに指示します。

  • MongoClientオブジェクト。 への接続を作成し、 MongoDBデプロイで操作を実行します。

MongoClientOptions を使用して、 MongoDB .に接続しているNode.jsドライバーの動作をカスタマイズすることもできます。

このガイドでは、接続stringを作成し、MongoClient オブジェクトを使用してMongoDBに接続する方法について説明します。

標準の接続stringには次のコンポーネントが含まれます。

コンポーネント
説明

mongodb://

必須: これを標準接続形式の文字列として識別するプレフィックス。

username:password

任意。認証資格情報。これらを含めると、クライアントはauthSource で指定されたデータベースに対してユーザーを認証します。authSource 接続オプションの詳細については、 接続トラブルシューティングガイドの「認証データベースでユーザーが を確認する」を参照してください。

host[:port]

必須。 MongoDB が実行されているホストとオプションのポート番号。 ポート番号を指定しない場合、ドライバーはデフォルトのポート27017を使用します。

/defaultauthdb

任意。接続文字列に username:password@認証情報が含まれている一方で、authSource オプションが含まれていない場合に使用する認証データベース。 引数なしで client.db() を呼び出すと、これは使用されるデータベースになります。このコンポーネントを含めない場合、クライアントはadminデータベースに対してユーザーを認証します。

?<options>

任意。 接続固有のオプションを <name>=<value> ペアとして指定するクエリstringです。 これらのオプションの詳細については、「接続オプションの指定 」を参照してください。

接続 の作成の詳細については、string MongoDB Serverドキュメントの「 接続 文字列 」を参照してください。

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()メソッドを明示的に呼び出します。

Tip

明示的なリソース管理

Node.jsドライバーは、MongoClientClientSessionChangeStreams、およびカーソルの明示的なリソース管理をネイティブでサポートしています。この機能は実験的なものであり、変更される可能性があります。明示的なリソース管理を使用する方法については、v6.9 リリースノートを参照してください。

Stable API 機能について詳しくは、「Stable API」ページをご覧ください。

同じ MongoClientインスタンスを使用して複数のMongoDB操作を同時に実行すると、低速操作によって他の操作が遅れる可能性があります。遅い操作ではMongoDBへの接続が専有され続け、そのため、別の接続が利用可能になるまで他の操作が待機する恐れがあります。

MongoDB の低速操作が遅延の原因になっていると思われる場合は、次の方法を使用して、進行中のすべての操作のパフォーマンスを確認できます。

  • 配置でデータベースプロファイラーを有効にします。 詳細については、サーバー マニュアルの「データベースプロファイラ」を参照してください。

  • db.currentOp() MongoDB Shell コマンドを実行します。 詳細については、サーバー マニュアルのdb.currentOp()ドキュメントを参照してください。

  • 接続プールのモニタリングを有効にします。詳細については、接続プール イベントを参照してください。

遅延の原因となっている操作を特定したら、これらの操作のパフォーマンスを向上させるようにしてください。 可能な解決策については、「 MongoDB パフォーマンスのベストプラクティス ガイド 」をお読みください。

パフォーマンスに関するベストプラクティスを実装しても遅延が発生する場合は、接続設定を変更して接続プールのサイズを増やすことができます。 接続プールは、ドライバーが常に維持するサーバーへの接続のグループです。

接続プールの最大サイズを指定するには、 MongoClientインスタンスの接続オプションmaxPoolSizeオプションを設定します。 maxPoolSizeのデフォルト値は100です。 サーバーへの使用中の接続数がmaxPoolSizeに達した場合、ドライバーへの接続が利用可能になるまでサーバーに送信される次の操作は一時停止します。 次のコードでは、新しいMongoClientを作成するときに、 maxPoolSize150に設定します。

const client = new MongoClient(uri, { maxPoolSize: 150 });

Tip

接続プーリングの詳細については、[ 接続プールの概要 ] ページの「 接続プールの概要 」セクションを参照してください。

Node.jsドライバーを使用して MongoClientオブジェクトを作成する方法の詳細については、次のAPIドキュメントを参照してください。

戻る

接続

項目一覧