MonogoDB 连接副本集
2024-12-02 19:29 abce 阅读(36) 评论(0) 编辑 收藏 举报要连接到副本集,可以通过指定副本集成员的主机名(或 IP 地址)和端口号。
如果无法提供副本集中主机的完整列表,可以指定副本集中的一台或多台主机,并指示驱动程序通过以下方式之一执行自动发现:
· 将副本集的名称指定为 replicaSet 参数的值。
· 将 false 指定为 directConnection 参数的值。
· 在副本集中指定多个主机。
连接到副本集:
1 | mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl |
连接到开启访问控制的副本集:
1 | mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl |
如果用户名、密码中包含以下特殊字符:
1 | : / ? # [ ] @ |
需要使用百分号编码。
连接选项是通过 name=value 的形式配置的。使用驱动的时候,name 是大小写不敏感的;使用 mongosh 的时候,name 是大小写敏感的。而 value 始终是大小写敏感的。
写关注选项
可以在连接字符串中指定子关注选项,也可以作为方法的参数执行写关注选项,比如insert、update 选项。如果两个地方都做了配置,方法中的配置会覆盖连接字符串中的设置。
例如:
1 | mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&w=majority&wtimeoutMS=5000 |
readConcern 选项
对于 WiredTiger 存储引擎,MongoDB 3.2 为副本集和副本集分片引入了 readConcern 选项。读关注允许客户选择从副本集读取的隔离级别。
以下指向副本集的连接字符串指定了readConcernLevel=majority :
1 | mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readConcernLevel=majority |
读首选项
读首选项描述了读复制集操作的行为。通过这些参数,可以在连接字符串中按连接指定读取首选项。
比如,优先从辅助节点读
1 | mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120 |
readPreference 参数的可选值:primary (Default)、primaryPreferred、secondary、secondaryPreferred、nearest
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)
2015-12-02 Consolidated Seed Table Upgrade Patch(Patch 17204589)
2015-12-02 adop - ERRORMSG: Since earlier patching session failed and you are invoking apply again