我有一个 Go 客户端,它重复将数据插入MongoDB 1 分钟。我不希望写入被客户端确认,直到它们被复制到我的主要-次要-仲裁者副本集的次要副本,所以我通过mongo shell指定了多数写入关注。
但是,客户端的执行远远早于将写入复制到辅助节点(我正在查看文档计数以确保)完成。如果主数据库在复制完成之前崩溃,那么数据将回滚——从客户端的角度来看——已经被确认。
这种行为是否与我通过 shell 设置的大多数写关注点相矛盾?我还需要通过 mgo 驱动程序设置写关注吗?这篇文章建议我需要:
与 Go 同时运行 MongoDB 查询
我们使用
mgo.DialWithInfo
方法来创建一个mgo.Session
对象。每个会话指定一个强或单调模式,以及其他设置,例如写入关注和读取首选项。
但是我在mgo
驱动程序文档中没有看到任何关于设置写关注的内容。我错过了什么?
相关分类