使用MongoDB Compass编辑删除AWS DocumentDB文档报错解决方法
问题原因
AWS DocumentDB 对MongoDB协议的兼容实现不支持Retryable Writes(可重试写入)特性,而新版本MongoDB Compass默认在连接配置中开启retryWrites=true,所有单文档更新、删除类的写操作都会触发该特性的兼容性校验,直接抛出"Retryable writes are not supported"报错。
解决方法
直接修改连接参数(优先推荐,操作成本最低)
- 在Compass的连接列表页找到你的DocumentDB连接,点击编辑按钮
- 找到「高级连接选项」-「连接串」配置栏,检查参数项,将
retryWrites=true修改为retryWrites=false - 确认SSL配置已正确上传DocumentDB要求的Amazon根证书,保存配置后重新连接即可正常执行单文档更新、删除操作
手动拼接连接串可参考如下格式:
mongodb://<你的数据库账号>:<账号密码>@<DocumentDB集群访问地址>:27017/?ssl=true&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false注意:连接DocumentDB必须开启SSL校验,删除
ssl=true参数会导致连接失败。降级MongoDB Compass版本
1.29及更早版本的MongoDB Compass没有默认开启retryWrites参数,安装旧版本后直接按原有配置连接DocumentDB,不需要额外调整参数即可正常执行写操作,适合不想逐个修改连接参数的场景。拆分工具使用场景
保留现有Compass配置只做集群状态监控、数据查询使用,所有涉及文档更新、删除的写操作,通过加了retryWrites=false参数连接的Mongo Shell、或其他兼容MongoDB协议的客户端执行,也能绕过该报错。
补充说明:关闭retryWrites仅会取消写入失败时的自动重试能力,不会影响正常读写逻辑,日常运维手动操作时遇到网络失败手动重发即可,没有额外功能影响。
内容的提问来源于stack exchange,提问作者tolu olatubosun
相关产品推荐
相关产品推荐

