代码改变世界

MongoDB连接字符串的URI格式

2023-02-15 13:27  abce  阅读(818)  评论(0编辑  收藏  举报

两种的连接字符串格式

1.标准的连接格式

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

(1)单机连接格式

mongodb://username:password@host[:port]/defaultauthdb?<options>

如果没有添加defaultauthdb,前面的/也必须存在。

(2)复制集连接格式

复制集要包含参数replicaSet

mongodb://username:password@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?authSource=admin&replicaSet=myRepl

(3)分片连接格式

分片环境中要指定mongos的主机

mongodb://username:password@mongos0.example.com:27017,mongos1.example.com:27017,mongos2.example.com:27017/?authSource=admin

备注:如果authSource和defaultauthdb都没有指定,默认就是使用admin数据库。

 

如果用户和密码中有特殊符号:

: / ? # [ ] @

这些特殊符号要使用%进行转换编码。为了减少麻烦,可以不使用这些特殊的字符。以下是示例:

mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/?authSource=admin

转换文档:

https://www.rfc-editor.org/rfc/rfc3986#section-2.1

 

2.DNS种子列表连接格式

这部分需要网络工程师的协助,参考文档即可。

 

连接字符串选项

连接选项是成对出现的,格式:name=value。这里的name是大小写不敏感的,但是value是大小写敏感的。多个选项之间用&隔离。

 

Write Concern选项

以下都是支持写关注选项的

·MongoDB drivers·mongosh·mongofiles·mongoimport·mongorestore

Write Concern可以在连接字符串中定义,也可以在方法(比如insert、update)中以参数的形式指定。如果同时指定了,那么方法参数会覆盖连接字符串的设置。

例如:

mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&w=majority&wtimeoutMS=5000

 

readConcern选项

支持的级别:

·local·majority·linearizable·available

例如:

mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readConcernLevel=majority

 

读优先(Read Preference)

mongodb://db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120mongodb://mongos1.example.com,mongos2.example.com/?readPreference=secondary&maxStalenessSeconds=120