MongoDB - 打开和关闭连接 - 建议良好实践

2024-05-14

我通过 Node.js 的驱动程序使用 MongoDB

我通常打开一个连接(通过connect()方法)任何时候我需要执行操作并关闭它(通过close()方法)一旦我完成。在我的程序中,我自然需要对 MongoDB 执行许多操作,因此我会多次打开和关闭连接。

我想知道这是否是一个好的做法,或者是否最好在执行第一个操作时打开连接,将其存储在变量中,并在程序结束时将已打开的连接用于以下操作关闭它。

非常感谢任何建议。


最佳实践是打开连接一次,将其存储在变量中并在最后关闭它。 MongoDB 明确推荐这样做。这就是为什么打开和关闭连接是 MongoDB API 的一部分,而不是针对每个查询自动发生的原因。

每个查询的打开和关闭连接都会在性能(CPU + 延迟)、网络流量、内存管理(创建和删除对象)方面引入显着的开销,不仅对客户端而且对服务器本身也会产生影响其他客户。

关于术语联系:在像Java这样的一些驱动程序中,实际创建并存储在变量中的并不是物理连接,而是一个MongoClient实例。从抽象 (API) 的角度来看,它看起来像是一个连接,但它实际上封装了实际的物理连接,并向用户隐藏了复杂性。

创建MongoClient仅实例一次,对于支持此功能的驱动程序,也将使您受益连接池驱动程序会为您并行维护活动连接,因此您也只需创建一个MongoClient跨多个线程的实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MongoDB - 打开和关闭连接 - 建议良好实践 的相关文章

  • Mongoose查询结果是只读的吗?

    如何修改 Mongoose 查询返回的对象 假设我们有以下模式 var S new mongoose Schema name String field String 我对结果进行了以下查询和修改 var retrieve function
  • 使用 PyMongo 将 MongoDB find() 返回序列化为非匿名 JSON 数组

    我的 Python 代码查询 MongoDB 并返回an array以下对象 u attribute u value u id ObjectId 534776c66e5987041f6154bd 我想要实现的是返回以下 JSON mycol
  • mongodb 正在运行吗?

    我已经在我的 Unix 服务器上安装了 Mongodb 和 PHP 驱动程序 我的问题是如何判断 Mongodb 是否正在运行 是否有一个简单的命令行查询来检查状态 如果我从外壳程序启动一次 如果我退出外壳程序 它会继续运行 情况似乎并非如
  • Mongo $group 和 $project

    我正在尝试获取关键字计数parentId categioryId and llcId 我的数据库是 id ObjectId 5673f5b1e4b0822f6f0a5b89 keyword electronic content manage
  • 如何修复 MongoClient is not a constructor 错误

    我刚刚学习 JavaScript 和 Nodejs 根据我在网上找到的一些代码 我编写了以下应用程序 当我尝试运行它时 我在第 9 行收到错误 其中显示 new MongoClient 错误提示 MongoClient 不是构造函数 您能解
  • 相同的单词但不同的 unicode 字符

    我在 Windows 上使用 Python 构建了一个关于越南餐馆的问答应用程序 要编写越南语字符 我需要使用 Unicode 首先 我从使用 HTML charset utf 8 的 TripAdvisor 网站克隆数据并构建我的 Mon
  • mongodb 中的 Redact 对我来说似乎很晦涩

    我现在正在与 redact 作斗争 我不确定是否理解它 我刚刚阅读了文档并尝试在集合成绩上使用 redact 它来自 mongodb 在线培训 grades 集合中的文档如下所示 id ObjectId 50b59cd75bed76f465
  • MongoDB 查询 IN 对象数组

    我在检索两个集合之间的信息时遇到问题 第一个集合存储员工信息 id ObjectId 4f9643967f8b9a3f0a00005a birth date 1963 09 09 departments departments id Obj
  • 尝试使用 Mongoose 进行批量更新插入。最干净的方法是什么?

    我有一个集合 其中包含包含三个字段的文档 名字 姓氏和年龄 我试图找出 Mongoose 中的哪个查询可以用来进行批量更新插入 我的应用程序偶尔会收到具有相同三个字段的新对象数组 我希望查询检查文档中是否已存在名字和姓氏 如果存在 则更新年
  • 如何同时使用 $gt 和 $lte 优化 MongoDB 查询?

    我有以下查询 有点像反向范围查找 db ip ranges find and start ip num lte 1204135028 end ip num gt 1204135028 当仅使用 lte 标识符运行时 查询会立即返回 但是当我
  • mongodb在单个操作中进行多个聚合

    我有一个包含以下文档的项目集合 item i1 category c1 brand b1 item i2 category c2 brand b1 item i3 category c1 brand b2 item i4 category
  • 由于类型错误无法创建索引:格式字符串参数不足

    我正在尝试使用 pymongo 创建索引 但因错误而失败 File D Users Dims Design EnergentGroup Python GIS Developer worker Approach03 sentinel mong
  • 用于高效大规模图遍历的数据库

    我有一个大型二分有向图数据集 约 2000 万个元素 在当前的使用中 我运行的遍历算法每次运行约 500 000 个节点 这些算法有效 但历史上运行的是从文本文件加载到内存的数据 文本文件似乎是一个不好的方法 所以我将数据作为邻接列表传输到
  • $setIntersection 失败,子文档数组不在集合中

    考虑以下文档 item1 a 1 b 2 item2 a b 以下查询 db test aggregate project items setIntersection item1 item2 返回预期结果 id ObjectId 57107
  • 如何在 php 和 mongodb 中使用 findAndModify

    我想将 id 加 1 但运行 php 页面时出现问题 错误是 Fatal error Call to undefined method MongoCollection findAndModify in C wamp www 我的代码是
  • 如何在 mongo shell 查询中仅投影嵌套数组的匹配字段

    我对 mongodb 相当陌生 我希望这是一个简单的问题 我有一个嵌套架构 其中有一个数组字段 其中该数组的每个项目都是一个本身具有数组字段的对象 例如 gt db mytest insert name a top x 1 y 2 nest
  • 匹配条件和数组中的最新日期

    db chat find pretty limit 3 id ObjectId 593921425ccc8150f35e7662 user1 1 user2 2 messages sender 1 datetime ISODate 2017
  • $near 需要 geojson 点,给定 geojson 点

    我有包含如下所示的地理字段的文档 geo type Point coordinates 37 44609999 121 88355687 我创建了一个空间索引 证明如下 db collection getIndexes v 1 key id
  • MongoDB $lookup 对一个文档的对象数组进行查找

    我在网上搜索过 但找不到与我的情况相符的内容 情况是这样的 我正在使用聚合将一个集合和来自另一个集合的一个文档组合在一起 restaurants aggregate match id in idList lookup from tags l
  • Mongodb 的 Mongoose 与 Mongoose

    我正在学习 NodeJ 要从 NodeJS 连接并使用 MongoDB 我看到很多使用 Monk 或 Mongoose 的示例 这两个库等效吗 它们具有相同的功能还是都有特定的用途 作为 NodeJS 的初学者 我应该使用哪个 以下是使用

随机推荐