首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有任何方法可以在Mongodb4.0中不使用复制集来执行ACID事务?

是否有任何方法可以在Mongodb4.0中不使用复制集来执行ACID事务?
EN

Stack Overflow用户
提问于 2019-06-21 11:55:20
回答 1查看 289关注 0票数 1

我们正试图在MongoDB 4.0中实现ACID事务特性,以满足独立的MongoDB服务器的应用程序需求,但我们面临的问题是在Mongo中出现下面的代码片段。

代码语言:javascript
复制
var session1 = db.getMongo().startSession();
var session1PersonColl = session1.getDatabase('test').getCollection('person');
session1.startTransaction({readConcern: {level: 'snapshot'}, writeConcern: {w: 'majority'}});
session1PersonColl.insert({"_id": 3, "fname": "fname-3", "lname": "lname-3"});

错误:

WriteCommandError({ "ok“:0,"errmsg”:“仅允许在副本集成员或mong上使用事务号”),“代码”:20,"codeName“:"IllegalOperation”

注意:当单神实例以复制集启动时,代码片段的相同代码运行良好。

如果没有复制集,请告诉我们是否有执行此操作的方法。

EN

回答 1

Stack Overflow用户

发布于 2019-06-21 12:30:28

文档声明:

从4.0版开始,MongoDB提供了对副本集执行多文档事务的能力。

因此,我想您确实需要一个副本集来支持事务。

这是另一个一条信息

多文档事务仅适用于副本集部署。您甚至可以在独立服务器上使用事务,但是您需要将其配置为一个副本集(只有一个节点)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56702975

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档