mongodb - 有什么方法可以在不使用副本集的情况下在 Mongodb4.0 中执行 ACID 事务
问题描述
我们正在尝试在 MongoDB 4.0 中实现 ACID 事务功能,以满足我们对独立 MongoDB 服务器的应用程序需求,但我们在 Mongo Shell 中面临以下代码片段的问题。
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 os 上使用", "code" : 20, "codeName" : "IllegalOperation"
注意:当 mongod 实例使用 Replica Set 启动时,相同的代码片段可以正常工作
请让我们知道是否有任何方法可以在没有副本集的情况下执行此操作
解决方案
推荐阅读
- angular - Angular:尝试在 HTML 表中使用 Ng-if
- amazon-web-services - Aws SDK Ruby - 配置 Faraday 时自动检索凭证
- python - 浮点数到整数 Python
- asp.net-core - 在应用程序启动期间初始化/播种数据库数据是否可以?
- kubernetes - 跨端口的 Kubernetes nginx 入口会话亲和性
- c# - 删除外括号并用数字命名对象?
- python - odeint:无法根据规则“安全”将数组数据从 dtype('complex128') 转换为 dtype('float64')
- python - 如何从不同的列在熊猫中创建一个列,匹配一个列表
- javascript - 有没有办法可以在 JavaScript 中使用带有 if () 语句的 .includes() 函数?
- python - 我在从 python 项目中的子文件夹导入时遇到问题