1. ホーム
  2. node.js

[解決済み] Node.jsのWebアプリケーションでMongoDBの接続を管理するにはどうすればよいですか?

2022-03-17 21:07:16

質問内容

を使用しています。 node-mongodb-native ドライバとMongoDBを組み合わせてウェブサイトを作成します。

コネクションの管理方法について、いくつか質問があります。

  1. すべてのリクエストに1つのMongoDB接続だけを使用すれば十分ですか?パフォーマンスの問題はないですか?そうでない場合、アプリケーション全体で使うグローバルな接続を設定できますか?

  2. そうでない場合、リクエストが来たときに新しいコネクションをオープンし、リクエストを処理したときにそれをクローズすれば良いのでしょうか?コネクションをオープンしたりクローズしたりするのはコストがかかりますか?

  3. グローバルコネクションプールを使用した方が良いですか?ドライバにはネイティブコネクションプールがあると聞きました。それは良い選択ですか?

  4. コネクションプールを使用する場合、接続数はいくつにすればよいですか?

  5. その他に注意すべき点はありますか?

解決方法は?

node-mongodb-native の主要なコミッターは次のように述べています。 :

<ブロッククオート

アプリ起動時に一度だけ MongoClient.connect を実行し、再利用することができます。 を使用します。これはシングルトン接続プールではなく、各 .connect は新しい接続プールを作成します。

では、ご質問に直接お答えします。 の結果のdbオブジェクトを再利用します。 MongoClient.connect() . これによりプーリングが可能になり、各dbアクションでコネクションをオープン/クローズするのに比べ、顕著なスピードアップを実現します。