mongodb 4.0 对 Node.js 的事务支持

2024-01-07

找不到 mongodb 4.0 事务对 Node.js 支持的文档

它已经在 mongo 驱动程序中可用了吗http://mongodb.github.io/node-mongodb-native/3.1/api/ http://mongodb.github.io/node-mongodb-native/3.1/api/


正如评论中提到的,您可以在以下位置找到交易参考:node-mongodb-native v3.1 API ClientSession http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#startTransaction。这是因为事务与会话相关联。也就是说,您为一个会话启动一个事务。在任何给定时间,一个会话最多可以有一个未完成的事务。

的文档MongoDB 多文档事务 https://docs.mongodb.com/manual/core/transactions/还包含示例Node.js代码片段。例如:

  session.startTransaction({
    readConcern: { level: 'snapshot' },
    writeConcern: { w: 'majority' }
  });

  const employeesCollection = client.db('hr').collection('employees');
  const eventsCollection = client.db('reporting').collection('events');

  await employeesCollection.updateOne(
    { employee: 3 },
    { $set: { status: 'Inactive' } },
    { session }
  );
  await eventsCollection.insertOne(
    {
      employee: 3,
      status: { new: 'Inactive', old: 'Active' }
    },
    { session }
  );

  try {
    await commitWithRetry(session);
  } catch (error) {
    await session.abortTransaction();
    throw error;
  }

上述方法的参考可以在以下位置找到:

  • ClientSession.startTransaction() http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#startTransaction
  • ClientSession.commitTransaction() http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#commitTransaction
  • ClientSession.abortTransaction() http://mongodb.github.io/node-mongodb-native/3.1/api/ClientSession.html#abortTransaction

请注意,除了 MongoDB Node.js 驱动程序 v3.1 之外,还可以使用多文档事务副本集仅适用于 MongoDB v4.0.x。分片集群的事务从 v4.2 版本开始可用。

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

mongodb 4.0 对 Node.js 的事务支持 的相关文章

  • 如何在 C# 中为 mongodb 文档的条目使用不同的名称?

    我正在尝试对以下文档进行 CRUD 操作MongoDB and C 我希望在 C 中使用具有长有意义的属性名称的固定结构化域实体 但由于每个属性的名称将保存在每个文档的 MongoDB 中 所以这不是一个好主意 这是因为属性名称将被冗余地保
  • 从mongoDB和Nodejs获取数据:toArray不是函数错误[重复]

    这个问题在这里已经有答案了 我有以下代码 var user User find limit 1 skip 10 toArray 但我收到错误消息toArray不是一个函数 但如果我执行以下操作 我将获得所有记录 User find func
  • 使用 mongoose 将非常大的 CSV 保存到 mongoDB

    我有一个包含超过 200 000 行的 CSV 文件 我需要将其保存到 MongoDB 如果我尝试 for 循环 Node 将耗尽内存 fs readFile data txt function err data if err throw
  • 按 sum mongodb 分组[重复]

    这个问题在这里已经有答案了 这是我以前的 MySQL 查询 SELECT Count status as amt status FROM users GROUP BY status 这会返回类似的东西 amt status 3 0 210
  • 从 mongoDB 获取数据并在 HTML 上显示

    我无法理解如何从 MongoDB 数据库获取数据并将其显示在 HTML 上 我已经设置了数据 这是 server js 文件 const path require path const express require express con
  • Meteor 独特客户端集合的发布/订阅策略

    使用 Meteor 我想知道如何最好地处理共享相同服务器端数据库集合的不同客户端集合 考虑以下示例 我有一个User集合 在我的客户端我有一个好友用户列表我有一个搜索功能 可以对整个用户数据库执行查询 返回一个与查询匹配的用户名列表 在发布
  • Mongodb 聚合使用 $group 两次

    我在 mongo 中有一堆文档 其结构如下 id number 2 colour id name Green hex 00ff00 position id name Defence type position ageGroup id nam
  • Mongodb简单前缀查询与正则表达式和排序很慢

    我被这个简单的前缀查询困住了 虽然蒙戈文档 http www mongodb org display DOCS Advanced Queries AdvancedQueries RegularExpressions声明您可以通过使用前缀正则
  • 查找聚合中的管道在 mongodb 中不起作用

    我是 mongodb 的新手 所以我希望这不会成为一个非常基本的问题 我做了一些研究 并试图应用我所发现的东西 但有些东西似乎让我忽略了 我有两个以下格式的集合 Shop shopId 1002 shopPosId 10002 descri
  • 使用 Homebrew 安装 mongodb 时遇到问题

    我正在尝试让 Mongo 运行 我安装了包管理器Homebrew https brew sh 然后我使用了 Mongo 站点上的命令 brew update brew install mongodb 这似乎安装正确 我输入了mongo在新的
  • 正则表达式 Spring 数据 mongodb 存储库

    早上好 我正在尝试使用查询注释将正则表达式与 Spring data mongodb 存储库结合起来 我想要的是在我的 mongo 文档的一个字符串属性中搜索一个子字符串 我一直在谷歌和这里寻找 但我没有找到任何优雅的东西 我想知道 Spr
  • Windows 7 机器上的 MongoDB:无法建立连接

    在 Windows 7 机器上使用 mongod exe 启动 Mongo 后 我尝试启动 mongo shell 但失败并出现以下错误 无法连接到 127 0 0 1 27017 原因 errno 10061 否 由于目标机器主动拒绝而无
  • 聚合和展开数组,但保留顶级键

    假设我的收藏中有以下文档Classes收藏家 id ObjectId 5df58d45244a850d54b922c8 mentors numOfMentors NumberInt 1 mentorList ObjectId 5c9ba63
  • Mongoose嵌入式文档更新

    我在嵌入式文档更新方面遇到问题 我定义的架构 var Talk new Schema title type String required true content type String required true date type D
  • MongoDB $geoIntersects 不适用于包含负顶点的多边形

    我已在数据库中存储了跨越 x 轴和 y 轴的多边形 并且我想搜索包含给定点的多边形 为此 我使用 geoIntersects 运算符来指定一个点 但是 当多边形穿过轴时 MongoDB 不会返回任何多边形 我可以对查询或架构进行任何小的更改
  • MongoDB 复合键:InvalidOperationException:{document}.Identity 不受支持

    我在水合由复合 ID 组成的类时遇到问题 该复合 ID 又具有基类 我收到一条错误消息InvalidOperationException document Identity is not supported 我试图写入数据库的类如下 pub
  • Mongodb 数据库上的 SASL 身份验证失败

    我在尝试使用 PHP Mongodb 驱动程序连接到 Mongodb 时遇到问题 实际上我有一个名为 LRS 的数据库 它有一个名为 juano 的用户 在我的设置文件中带有密码 12345 我确信我编写了正确的配置 但是当我在 Larav
  • Mongodb更新很多

    我正在使用express js 和 npm 模块 mongodb 进行开发 并以 mongodb 作为数据库 我有两个集合 即 用户 和 活动 一个用户可能有数千个活动 首先 我将用户的 id 姓名和图片 url 存储到 关系的活动文件 请
  • MongoDB自增ID

    MongodB 中自动生成的 ID 的大小为12 Bytes大整数的大小是8 bytes 我在 4 台运行 Ubuntu Server 的机器上有一个 mongodb 集群 但我现在只是在测试 插入只能通过一台服务器 即 Nodejs 服务
  • 如何处理 MongoDB 的断开连接错误

    我在 Node js 进程中看到了这个未捕获的异常 Uncaught exception Error read ETIMEDOUT at TCP onStreamRead internal stream base commons js 16

随机推荐

  • setInterval 在 Chrome 上无法正常工作

    我有一个定制的幻灯片对象来执行名称在网站上指示的常见操作 一切正常 除非我在 Chrome 中切换选项卡并返回网站选项卡 当这种情况发生时 幻灯片就会变得疯狂并开始淡化图像 而不管setInterval给定的间隔 找不到与此相关的任何内容
  • 按字母顺序选择排序程序的问题

    我遇到了涉及选择排序概念的家庭作业问题 我们得到了一个框架代码 我们需要在其中完成bool compare and void selectionsort 功能 我已经完成了 然后 运行程序应该对给出的字符串进行排序main 按字母顺序排列
  • Windows cmd git bash:conda.sh没有这样的文件或目录(Windows行结尾,缺少斜杠)

    我正在 Windows 10 中工作 全新安装了 Anaconda 和 Git Bash 我决定将 cmd exe 设置为默认控制台程序以使用 git bash 而不是 minTTY 并且我认为我已经遇到了 Unix 风格字符与 Windo
  • 在matlab中使用FFT去除图像中的图案和噪声

    我使用 clown jpg 图像来消除其明显的图案 噪音 在对图像进行 FFT 之前所做的第一步是将其重新调整为 2 次幂的方形图像 即 256 x 256 在 matlab 中使用 FFT 和 fftshift 可以实现快速傅里叶变换 其
  • 使用 webpack 生成多个 html 文件

    我正在尝试在一个项目中做一些我不确定是否可能的事情 我的方式错误或误解了某些事情 我们正在使用 webpack 其想法是提供多个 html 文件 本地主机 8181 gt 提供index html本地主机 8181 example html
  • 为什么系统类方法无法访问?

    您好 我对 java 有点陌生 正在尝试从 txt 文件中提取字符串 BufferedReader br new BufferedReader new FileReader file txt try StringBuilder sb new
  • 将 OCaml 字符串转换为 format6

    以下代码无法编译 let x hello in Printf printf x 错误是 Error This expression has type string but an expression was expected of type
  • Swagger 不扫描位于不同 jar 文件中的实体类中的 ApiModel 和 ApiModelProperty 注释

    我有以下两个实体类 第一堂课是SampleApiEntity package my company rest import io swagger annotations ApiModel import io swagger annotati
  • Hive 动态分区和静态分区的主要区别

    Hive 中静态分区和动态分区的主要区别是什么 使用单独的插入意味着静态 而对分区表的单个插入意味着动态 还有其他优点吗 在静态分区中 我们需要在每个 LOAD 语句中指定分区列值 假设我们对表 t1 的列国家 地区进行分区 用户 ID 姓
  • 如何让背景逐渐变色?

    我正在尝试制作一个网页 其中图像的背景颜色逐渐改变颜色 我知道如何在 Javascript 中更改某些内容的背景颜色 但我不知道如何对其进行 动画 处理 不使用 Flash 您可以使用 CSS 过渡来获得这种效果 只需将 css 代码添加到
  • Expander扩展按钮wpf的移动位置

    我是 wpf 的新手 想要使用扩展器来允许用户显示和隐藏文本 我希望扩展器容器是窗口高度 800 的整个长度 我希望扩展器向右扩展 并使文本和扩展器按钮位于扩展器的中心 我知道如何使扩展器向右扩展以及如何使用文本块更改文本的方向 我不知道如
  • android httpclient 在第二次向服务器发出请求时挂起(连接超时)

    我正在努力解决以下问题 我的应用程序使用 HttpClient 向 http 服务器发出一系列请求 我使用 HttpPut 将数据发送到服务器 第一个请求进展顺利且快速 第二个请求挂起 40 秒 然后我捕获连接超时异常 我正在尝试重用 Ht
  • 使用 javascript 更新 2 个完全相同的图像源

    我使用名为 Cryptographer captchan fr 的 PHP 验证码网站 我需要在同一页面上使用 2 个验证码 但我遇到问题 它们确实生成了 但是当我单击刷新时 仅第一个刷新 刷新代码如下所示 document images
  • RESTeasy/JAXB;如何避免将命名空间添加到 标记中的元素? (JAXB 中的列表<元素>)

    我将在这里尽我所能简化我的类和输出 但基本上我想要添加一个org w3c dom Element 在本例中代表原子链接 到我返回的 JAXB 对象 JAXB 类看起来像 import javax xml bind annotation Xm
  • 网格中的实时数据 - 更好的方法

    对您来说 在网格中显示实时数据 股票交易 天气等 的更好方法是什么 我用这个方法 setInterval function jQuery list1 trigger reloadGrid 5000 我觉得你的问题很有趣 我认为这个问题对于许
  • SQL:如何获取 XML 数据类型中的属性值?

    我的数据库中有以下 xml
  • UITableView:加载所有单元格

    是否可以在加载视图时加载 UITableView 的所有单元格 以便在滚动时不会加载它们 这样做时我会显示加载屏幕 拜托 这是我项目的唯一方法 抱歉太复杂 无法解释原因 EDIT 好吧 让我向你解释一下 我肯定会做什么 UITableVie
  • 找不到主类,java错误

    我一直在测试我一直在制作的java swing程序 在我的一台电脑上 也就是我最初制作它的电脑上 它运行得很好 我已经在 3 台不同的计算机上测试了相同的程序 当我从 ide 中启动它时它会运行 但是当我双击 jar 时 我会收到一个标题为
  • Django IntegerField 返回 string(!) - 如何强制转换为 int?

    我在模型上声明了一个 IntegerField 如下所示 amount models IntegerField 访问它时 有时会返回一个字符串 造成这种情况的直接原因是它分配了一个字符串 到目前为止 还很不神秘 即使在保存后它也会返回一个字
  • mongodb 4.0 对 Node.js 的事务支持

    找不到 mongodb 4 0 事务对 Node js 支持的文档 它已经在 mongo 驱动程序中可用了吗http mongodb github io node mongodb native 3 1 api http mongodb gi