连接字符串选项
此页面列出了 SRV 连接字符串和标准连接字符串的所有连接选项。
连接选项是以下形式的对: name=value
。
使用驱动程序时,选项
name
不区分大小写。使用
mongosh
时,选项name
不区分大小写。value
始终区分大小写。
用 & 符号 (&
) 字符 name1=value1&name2=value2
分隔选项。在下面的示例中,连接包括 replicaSet
和 connectTimeoutMS
选项:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db1.example.net:27017,db2.example.net:2500/?replicaSet=test&connectTimeoutMS=300000
注意
连接字符串参数的分号分隔符
为了提供向后兼容性,驱动程序目前接受分号 (;
) 作为选项分隔符。
副本集选项
以下连接字符串连接到名为 myRepl
的副本集,其节点在指定主机上运行。它以用户 myDatabaseUser
和密码 D1fficultP%40ssw0rd
进行身份验证:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db0.example.com:27017,db1.example.com:27017,db2.example.com:27017/?replicaSet=myRepl
连接选项 | 说明 |
---|---|
如果 连接到副本集时,向 uri 的 | |
指定客户端是否直接连接到连接 URI 中的
|
连接选项
TLS 选项
下面的副本集连接字符串包括 tls=true
选项。它使用密码 D1fficultP%40ssw0rd
并以 myDatabaseUser
用户的身份进行身份验证。
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&tls=true
或者您也可以使用等效的 ssl=true
选项:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&ssl=true
连接选项 | 说明 |
---|---|
启用或禁用 TLS/SSL:
| |
一个布尔值,用于启用或禁用连接的 TLS/SSL:
| |
禁用各种证书验证。 设置为 此连接字符串选项不可用于 警告:禁用证书验证会产生漏洞。 |
超时选项
压缩选项
连接选项 | 说明 | ||||||||
---|---|---|---|---|---|---|---|---|---|
一个整数:为 您可以指定范围从
由 |
连接池选项
大多数驱动程序实现了某种连接池处理。某些驱动程序不支持连接池。有关连接池实现的更多信息,请参阅驱动程序文档。这些选项允许应用程序在连接到 MongoDB 部署时配置连接池。
连接选项 | 说明 |
---|---|
连接池中的最大连接数。 默认值为 100 。 | |
连接池中的最小连接数。默认值为 并非所有驱动程序都支持 | |
连接在池中可保持空闲状态的最大毫秒数,在此时间过后,连接将被删除或关闭。 并非所有驱动程序都支持此选项。 | |
驱动程序乘以 并非所有驱动程序都支持此选项。 | |
线程可以等待连接变为可用状态的最长时间(以毫秒为单位)。有关默认值,请参阅驱动程序文档。 并非所有驱动程序都支持此选项。 |
写关注选项
写关注描述了从 MongoDB 请求的确认级别。写关注选项由以下提供支持:
MongoDB 驱动程序
您既可以在连接字符串中指定写关注,也可以将其作为 insert
或 update
等方法的参数。如果在两处都指定了写关注,则方法参数会覆盖连接字符串设置。
MongoDB Atlas 部署连接字符串默认使用 "majority"
。如果没有为 MongoDB Atlas 部署指定写关注,MongoDB Atlas 会强制 "majority"
。
以下副本集连接字符串使用 wtimeoutMS
写关注参数指定 "majority"
写关注和 5 秒超时:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&w=majority&wtimeoutMS=5000
连接选项 | 说明 |
---|---|
对应于写关注 当 | |
如需了解更多信息,请参阅写关注。
readConcern 选项
对于 WiredTiger 存储引擎,MongoDB 引入了适用于副本集和副本集分片 readConcern
选项。
读关注允许客户端为源自副本集的读取操作选择一个隔离级别。
下面的副本集连接字符串指定了 readConcernLevel=majority
:
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readConcernLevel=majority
连接选项 | 说明 |
---|---|
有关详细信息,请参阅读关注。
读取偏好选项
读取偏好描述了读取操作与副本集相关的行为。这些参数允许您在连接字符串中基于每个连接指定读取偏好。
例如:
以下指向副本集的连接字符串指定
secondary
读取偏好模式和maxStalenessSeconds
值为 120 秒:mongodb://myDatabaseUser:D1fficultP%40ssw0rd@db0.example.com,db1.example.com,db2.example.com/?replicaSet=myRepl&readPreference=secondary&maxStalenessSeconds=120 下面是分片集群的连接字符串,其中指定了
secondary
读取偏好模式和 120 秒的maxStalenessSeconds
值:mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos1.example.com,mongos2.example.com/?readPreference=secondary&maxStalenessSeconds=120 以下指向分片集群的连接字符串指定
secondary
读取偏好模式以及三个readPreferenceTags
:mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongos1.example.com,mongos2.example.com/?readPreference=secondary&readPreferenceTags=dc:ny,rack:r1&readPreferenceTags=dc:ny&readPreferenceTags=
使用多个 readPreferenceTags
时顺序很重要。按顺序尝试 readPreferenceTags
,直到找到匹配项。一旦找到,就会使用该规范找到所有符合条件的匹配成员,并忽略剩余的 readPreferenceTags
。详情请参阅标记匹配顺序。
连接选项 | 说明 |
---|---|
指定此连接的读取偏好。可能的值是: 包含读操作的分布式事务必须使用读取偏好 该连接字符串选项不适用于 | |
指定客户端在停止对从节点进行读取操作之前,从节点的陈旧程度(以秒为单位)。有关详情,请参阅读取偏好 默认情况下,没有最大过期时限,客户端在选择将读取操作定向到的节点时,也不会考虑从节点的滞后。
| |
指定标签文档为冒号分隔的键值对列表(逗号分隔)。例如,
要指定标记文档列表,请使用多个 使用多个 该连接字符串选项不适用于 |
有关更多信息,请参阅读取偏好。
身份验证选项
以下指向副本集的连接字符串为 admin
数据库指定 authSource
。换言之,根据 admin
数据库对用户凭证进行身份验证。
mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017,mongodb1.example.com:27017,mongodb2.example.com:27017/?replicaSet=myRepl&authSource=admin
如果用户名或密码包含以下字符,则必须使用百分比编码转换这些字符:
$ : / ? # [ ] @
连接选项 | 说明 | |
---|---|---|
指定与用户凭证相关的数据库名称。如果未指定
如果未在连接字符串中或未通过 | ||
指定 MongoDB 用于验证连接的身份验证机制。如果您不指定
只有 MongoDB Enterprise Edition 的 要使用 如要使用 使用 如果AmazonAmazon Web Services IDWeb Services访问权限密钥ID 、秘密访问权限密钥或会话令牌包含以下字符,则必须使用百分比编码来转换这些字符。
或者,如果 AWS 访问密钥 ID、秘密访问密钥或会话令牌是通过各自的 AWS IAM 环境变量在您的平台上定义的,那么 Atlas 有关MongoDB中身份验证系统的更多信息,请参阅自管理部署上的身份验证。 另请考虑使用 x。 509用于对自管理部署上的客户端进行身份验证的证书,了解有关 x 509身份验证的更多信息。 | ||
为指定的 可能的键值对有:
| ||
在连接到启用了 Kerberos 的MongoDB 实例时,负责设置 Kerberos 服务名称。该值必须与您要连接的 MongoDB 实例上所设的服务名称相匹配。 对于所有客户端和 MongoDB 实例,
|
服务器选择和发现选项
MongoDB 提供以下选项来配置 MongoDB 驱动程序和 mongos
实例如何选择要直接读取或写入操作的服务器。
连接选项 | 说明 |
---|---|
用于在多个合适的 MongoDB 实例中选择的延迟窗口的大小(以毫秒为单位)。默认:15 毫秒。 所有驱动程序都使用 | |
指定在抛出异常之前阻止服务器选择的时间(以毫秒为单位)。默认:30,000 毫秒。 | |
仅限单线程驱动程序。当为 多线程驱动程序和 | |
默认值:
| |
仅限单线程客户端。控制客户端检查与 MongoDB 部署的 TCP 连接状态的频率。如果指定较低的值,客户端会更快地检测网络问题,但会使用更多 CPU。默认:5 秒。 并非所有驱动程序都支持此选项。请参阅驱动程序文档。 |
其他配置
连接选项 | 说明 |
---|---|
指定自定义应用名称。应用程序名称出现在:
| |
启用可重试写入。 可能的值为:
无论 | |
可能的值为:
请参阅您的驱动程序文档,了解默认情况。 并非所有驱动程序都支持 | |
指定客户端是否连接到负载均衡器。默认情况下,此选项处于 只有在满足以下要求时,您才能将此选项设置为
| |