使用mLab进行MongoDB写入时出现”MongoError:此MongoDB部署不支持可重试写入”的错误
简而言之
有一项名为mLab MongoDB的服务在云端提供MongoDB。当进行数据写入时,出现了MongoError: This MongoDB deployment does not support retryable writes的错误。下面是解决方法的备忘录。
导致这个的原因是什么?
根据这篇Stack Overflow的文章,mLab无法使用MongoDB的连接设置retryWrites选项,因此需要将其设为false。
retryWrites选项是在写入发生错误时,数据库会自动尝试重新写入的功能。根据官方手册,MongoDB 4.2驱动默认为true。
连接设置时的配置
以下是在使用Rails的Mongoid时将retryWrites选项设置为false的配置。有关mongoid.yml配置文件的详细信息,请参考mongoid-configuration。
production:
clients:
default:
database: heroku_test
hosts:
- test111111.mlab.com:51180
options:
user: "test_user"
password: "test_password"
retry_writes: false
options: