mongodb - MongoDB (Docker) 错误 20 - 尝试启动事务时出现非法操作
问题描述
我正在使用 MongoDB docker (4.4.x) 图像作为我的 NestJS 后端数据库。其中一个 API 是由我的支付网关的 webhook 触发的。由于它是与支付相关的数据库操作,因此我使用 ACID 事务。问题是,在我开始会话之后,然后进行事务并尝试查找一个文档(事务中的第一个查询),它会引发错误:
{
"ok": 0,
"code": 20,
"codeName": "IllegalOperation",
"name": "MongoError"
}
然后我切换到 MongoDB Atlas 开发服务器,整个事务完美运行。这让我相信,我安装的 mongo docker 映像有问题。
我的 docker-compose.yaml 文件:
version: '3'
services:
database:
image: 'mongo'
container_name: 'mongoDbDev'
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=789512346
volumes:
- ./mongo-volume:/data/db
ports:
- '27017:27017'
该mongo-volume
目录位于~/Documents/Workspace/Docker/mongodb/
我尝试了这个 stackoverflow解决方案,但没有奏效。哪个 TLDR;./mongo-volume
更改文件夹的权限。
附加信息,
- 我在没有 sudo 的情况下使用 docker-compose 命令(用 sudo 试过,没有用)
- 我必须使用带有 sudo 命令的 docker,安装后的步骤对我不起作用
解决方案
推荐阅读
- android - 错误:任务':react-native-fbads:processDebugResources'的执行失败。> com.android.ide.common.process.ProcessException:无法执行 aapt
- ios - 以编程方式设置约束不适用于我的表格视图
- ios - 上面有真实世界对象的 ARKit 平面
- sql - Oracle SQL 分组和比较子集
- protocol-buffers - varint中数据块长度和文件长度有什么关系?
- ios - 目标 c - 从图库或相机中选择图像后 - 需要启用旋转、翻转编辑
- php - 密码保护文件,查询字符串除外 - .htaccess
- angular - 删除选定的行索引
- swift - 扩展一个泛型类型,其中 T 具有另一个泛型类型
- javascript - 如何根据最新时间戳获取活动行号?