node.js - 如何在 Node.js Web 应用程序中管理 MongoDB 连接?

我正在使用 node-mongodb-native用MongoDB驱动来写一个网站。

我有一些关于如何管理连接的问题:

  1. 对所有请求只使用一个 MongoDB 连接就足够了吗?是否存在性能问题?如果没有,我可以设置一个全局连接以在整个应用程序中使用吗?

  2. 如果不是,我在请求到达时打开一个新连接,并在处理请求时关闭它是不是很好?打开和关闭连接是否昂贵?

  3. 我应该使用全局连接池吗?我听说驱动程序有一个 native 连接池。这是一个不错的选择吗?

  4. 如果我使用连接池,应该使用多少个连接?

  5. 还有其他需要注意的地方吗?

最佳答案

The primary committer to node-mongodb-native says :

You open do MongoClient.connect once when your app boots up and reuse the db object. It's not a singleton connection pool each .connect creates a new connection pool.

所以,要直接回答您的问题,重用 MongoClient.connect() 产生的 db 对象。这为您提供了池化,并且与在每个数据库操作上打开/关闭连接相比,将显着提高速度。

https://stackoverflow.com/questions/10656574/

相关文章:

mongodb - 如何在 Node.js 中使用 Mongoose 进行分页?

mongodb - 如何重命名 MongoDB 中所有文档的字段?

java - 为什么 MongoDB Java 驱动程序在条件中使用随机数生成器?

mongodb - 如何在 mongo 控制台中通过 ObjectId 搜索对象?

mongodb - 如何在 MongoDB shell 中打印出 20 多个项目(文档)?

node.js - mongodb/mongoose findMany - 查找 ID 列在数组中的

javascript - cursor.forEach() 中的 "continue"

sql - MongoDB 在 v4 之前不符合 ACID 的真正含义是什么?

node.js - Mongoose:findOneAndUpdate 不返回更新的文档

mongodb - 如何在 MongoDB 中将集合从一个数据库复制到另一个数据库