mongodb 4.0 对 Node.js 的事务支持

标签 mongodb

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

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

最佳答案

正如评论中提到的,您可以在 node-mongodb-native v3.1 API ClientSession 上找到交易引用。 。这是因为事务与 session 相关联。也就是说,您为一个 session 启动一个事务。在任何给定时间,一个 session 最多可以有一个未完成的事务。

MongoDB multi-document 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;
  }

上述方法的引用可以在以下位置找到:

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

关于mongodb 4.0 对 Node.js 的事务支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51587451/

相关文章:

mongodb - 如何在 MongoDB 中设置具有自动增量的主键?

node.js - 快速 session 条目未从 mongodb 中完全删除

linux - 无法将成员添加到 MongoDB 副本集

javascript - MongoDb 字段加密

node.js - 同时填充多个字段

java - 单元测试存储库 spring org.springframework.beans.factory.UnsatisfiedDependencyException

node.js - 用于 Nodejs 和 Mongo 的 gcp 上的 Kubernetes

c# - 如何将 MongoDB 驱动程序与 C# ASP.NET Core API 框架一起使用?

node.js 排序对象(mongoose、express、ejs)

javascript - 如何自动创建 REST API node.js/MongoDB