连接字符串格式
你可以使用以下任一方法指定MongoDB连接字符串:
- 标准连接字符串格式
- DNS种子列表连接格式。
标准连接字符串格式
本节介绍用于连接MongoDB部署的MongoDB连接URI的标准格式:独立,副本集或分片集群。
标准URI连接方案具有以下形式:
mongodb://[username:password@]host1[:port1][,...hostN[:portN]]][/[database][?options]]
对于独立MongoDB
mongodb://mongodb0.example.com:27017/admin
如果开启了访问控制:
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017/admin
如果用户名或密码包含at符号@,冒号:,斜杠/或百分号%字符,请使用百分比编码方式消除歧义
对于副本集群
mongodb://mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl
如果开启了访问控制,请包括用户凭据:
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/admin?replicaSet=myRepl
对于分片集群
URI的主要组成
标准URI连接字符串包括以下部分:
Component | Description |
---|---|
mongodb:// | 一个必需的前缀,用于标识这是一个字符串 标准连接格式。 |
username:password@ | (可选) 验证凭据。 如果指定,客户端将在连接后尝试使用这些凭据登录到特定数据库。 |
host[:port] | 运行mongod实例(或分片群集的mongos实例)的主机(和可选端口号)。 你可以指定主机名,IP地址或 UNIX domain socket。 根据你的部署拓扑指定任意数量的主机:
|
/database | (可选) 如果连接字符串包含username:password @形式的身份验证凭据,则要验证的数据库的名称。 如果未指定/database且连接字符串包含凭据,则驱动程序将对admin数据库进行身份验证。 |
?<options> | (可选) 一个查询字符串,它将特定于连接的选项指定为<\name> = <\value>对。 有关这些选项的完整说明,请参见连接字符串选项。 |
如果连接字符串未指定数据库, 你必须在最后一个主机和开始选项字符串的问号(?)之间指定斜杠(/)。
DNS种子列表连接格式
[TO-DO]
连接字符串选项
连接选项是以下形式的对:name = value。 该值始终区分大小写。 带有&符号(即&)字符的单独选项。 在以下示例中,连接包括replicaSet和connectTimeoutMS选项:
mongodb://db1.example.net:27017,db2.example.net:2500/?replicaSet=test&connectTimeoutMS=300000
副本集选项
以下连接字符串指向名为myRepl的副本集,其成员在指定主机上运行:
·
mongodb://db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/admin?replicaSet=myRepl
连接选项
- ssl
- connectTimeoutMS
- socketTimeoutMS
- compressors
- zlibCompressionLevel
连接池选项
- maxPoolSize
- minPoolSize
- maxIdleTimeMS
- waitQueueMultiple
- waitQueueTimeoutMS
写入关注选项
- w
- journal
- wtimeoutMS
读取关注选项
- readConcernLevel
读取偏好选项
读取首选项描述了与副本集有关的读取操作的行为。 这些参数允许你在连接字符串中基于每个连接指定读取首选项。
- readPreference
- maxStalenessSeconds
- readPreferenceTags
验证选项
以下连接字符串到副本集指定了admin数据库的authSource。 也就是说,用户凭据已经过admin数据库的身份验证。
mongodb://myDBReader:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/test?replicaSet=myRepl&authSource=admin
- authSource
- authMechanism
- authMechanismProperties
- gssapiServiceName
服务器选择和发现选项
其他配置
- appName
- retryWrites
- uuidRepresentation
一些例子
[TO-DO]