对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。
Docs 菜单

指定连接 URI 选项

本节介绍MongoDB连接和身份验证选项,您可以在Java Reactive Streams驱动程序中作为连接 URI 的参数传递。

如果将连接 URI 传递给 MongoClient 构造函数,则可以将连接选项作为 <name>=<value> 对包含在字符串中。在以下示例中,连接 URI 包含值为 60000connectTimeoutMS 选项和值为 truetls 选项:

public class MongoConnection {
public static void main(String[] args) {
String uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true";
try (MongoClient client = MongoClients.create(uri)) {
// Use client here
}
}
}

以下部分描述了Java Reactive Streams驱动程序中可用的连接选项。您可以将这些选项作为连接 URI 的参数传递,以指定客户端的行为。

连接选项
说明

authMechanism

设置Java Reactive Streams驾驶员用于对应用程序进行身份验证的机制。
ConnectionString

类API文档中定义了有效选项。数据类型:String
"SCRAM-SHA-256"默认值:连接到MongoDB4 v.0 或更高版本时为
"SCRAM-SHA-1" 。连接到MongoDB v.3 0到 v. 时为 。连接3 13
URI 示例:authMechanism=MONGODB-X509

authMechanismProperties



设置特定于身份验证机制的选项。数据类型:String
默认值:""
连接 URI 示例:authMechanismProperties=AWS_SESSION_TOKEN:12435

authSource


设置身份验证凭证的来源。来源通常是数据库。仅当authMechanism
设立为MONGO-CR

时,才会应用此选项。数据类型:String
默认值:连接 URI 中的数据库,如果未提供连接 URI 示例,则为"admin"
连接 URI 示例:authSource=admin

用户名

设置用于身份验证的用户名。当此选项包含在连接
URI

中时,必须对其进行百分号转义。数据类型:String
默认值:""
连接 URI 示例:username=my+user

密码

设置用于身份验证的密码。当此选项包含在连接
URI

中时,必须对其进行百分号转义。数据类型:String
默认值:""
连接 URI 示例:password=strong+password

连接选项
说明

connectTimeoutMS

设置连接超时之前可以花费的毫秒数。如果操作未在指定时间内完成,
Java Reactive

Streams驾驶员会引发超时异常。数据类型:Integer
默认值:null
连接 URI 示例:connectTimeoutMS=6000

maxIdleTimeMS




设置连接在被删除和关闭之前可以在池中保持空闲状态的最大毫秒数。将此值设置为高于应用程序的预期空闲时间,但低于防火墙或代理连接超时,以防止意外断开连接。数据类型:

Integer
默认值:null
连接 URI 示例:maxIdleTimeMS=6000

maxLifeTimeMS

设置池连接的最大生命周期(以毫秒为单位)。如果操作未在指定时间内完成,
Java Reactive Streams驾驶员将关闭连接。数据类型:


Integer
默认值:null
连接 URI 示例:maxLifeTimeMS=6000

socketTimeoutMS (已弃用)






此选项已弃用。您可以通过设置客户端级别的超时来配置此超时。套接字上的接收在超时之前可以花费的毫秒数。如果操作未在指定时间内完成,
Java Reactive

Streams驾驶员会引发超时异常。数据类型:Integer
默认值:null
连接 URI 示例:socketTimeoutMS=6000

ssl

设置是否使用 TLS/SSL 进行连接。数据类型:

boolean
默认值:null
连接 URI 示例:ssl=true

sslInvalidHostNameAllowed

允许 TLS/SSL 连接使用无效托管名。数据类型:

boolean
默认值:null
连接 URI 示例:sslInvalidHostNameAllowed=true

TLS

设置是否使用 TLS 进行连接。取代ssl

选项。数据类型:boolean
默认值:null
连接 URI 示例:tls=true

tlsAllowInvalidHostnames

允许 TLS 连接使用无效托管名。取代
sslInvalidHostNameAllowed

选项。数据类型:boolean
默认值:null
连接 URI 示例:tlsAllowInvalidHostnames=true

tlsInsecure

使用 TLS 进行连接时启用不安全的 TLS

连接。数据类型:boolean
默认值:null
连接 URI 示例:tlsInsecure=true

连接选项
说明

maxConnecting



设置池可以同时建立的最大连接数。数据类型:Integer
默认值:null
连接 URI 示例:maxConnecting=5

maxPoolSize

设置连接池的最大连接数。如果操作需要新连接,而连接池有maxPoolSize

个打开的连接,则新操作将等待新连接打开。要限制此等待时间,请使用单个超时设置。要学习;了解更多信息,请参阅限制服务器执行时间指南。数据类型:Integer
默认值:null
连接 URI 示例:maxPoolSize=5

minPoolSize



设置连接池的最小连接数。数据类型:Integer
默认值:null
连接 URI 示例:minPoolSize=3

waitQueueTimeoutMS (已弃用)

此选项已弃用。您可以通过设置客户端级别的超时来配置此超时。在正在使用的连接变为可用或创建并开始建立连接之前的最长时间等待(以毫秒为单位)。数据类型:







Integer
默认值:null
连接 URI 示例:waitQueueTimeoutMS=6000

连接选项
说明

compressors






按顺序为发送到服务器接收的线协议消息设置首选压缩类型。压缩类型必须作为逗号分隔的列表传入。驾驶员使用服务器支持的第一种压缩类型。数据类型:String
默认值:null
连接 URI 示例:compressors=snappy,zstd,zlib

zlibCompressionLevel

设置zlib要使用的压缩级别。此选项接受
-19

之间的整数值:- -1 :(默认值)。 zlib使用其默认压缩级别(通常为6 )。
-0 :无压缩。
-1 :速度最快,但压缩率最低。
9-

:压缩最佳,但速度最慢。数据类型:Integer
默认值:-1
连接 URI 示例:zLibCompressionLevel=3

连接选项
说明

directConnection



设置驾驶员是否直接连接到托管。数据类型:boolean
默认值:null
连接 URI 示例:directConnection=true

loadBalanced

设置驾驶员是否使用负载负载均衡器连接到MongoDB
。如果为true
,则驾驶员假定其通过负载负载均衡器进行连接。数据类型:

boolean
默认值:null
连接 URI 示例:directConnection=true

retryWrites




设置驾驶员是否在由于网络错误而失败时重试支持的写入操作。数据类型:boolean
默认值:True
连接 URI 示例:retryWrites=true

retryReads




设置驾驶员在由于网络错误而失败时是否重试支持的读取操作。数据类型:boolean
默认值:True
连接 URI 示例:retryReads=true

uuidRepresentation

设置Java Reactive Streams驾驶员用于对
UUID 实例进行编码的机制。有关所有有效选项的列表,请参阅 Uuid Representation API文档。数据类型:


String
默认值:unspecified
连接 URI 示例:uuidRepresentation=unspecified

连接选项
说明

proxyHost

建立 SOCKS5 代理托管以建立连接。
的值可以是有效的proxyHost IPv 解决、IPv 解决或域名。如果指定了4 6

proxyPasswordproxyUsernameproxyPort

,则为必填项。数据类型:String
默认值:null
连接 URI 示例:proxyHost=example.com

代理端口

设置 SOCKS5 代理服务器的端口号。必须是非负整数。数据类型:

Integer
默认值:null
连接 URI 示例:proxyPort=27

proxyUsername

设置用于与代理服务器进行身份验证的用户名。如果指定了proxyPassword

,则为必填项。数据类型:String
默认值:null
连接 URI 示例:proxyUsername=example

proxyPassword

设置用于与代理服务器进行身份验证的密码。如果指定了
proxyPassword

,则为必填项。数据类型:String
默认值:null
连接 URI 示例:proxyPassword=password

连接选项
说明

readPreference

设置此连接的读取偏好(read preference)。枚举值为:
primaryprimaryPreferredsecondarysecondaryPreferrednearest

。数据类型:Enum
默认值:primary
连接 URI 示例:readPreference.primary

readPreferenceTags


将标签集指定为以逗号分隔的冒号分隔键值对列表,例如dc:ny,rack:1 。所有键和值的开头和结尾的空格都被去掉。要指定标签集列表,请使用多个

readPreferenceTags
,用分号分隔。要学习;了解有关readPreferenceTags 的更多信息,请参阅 ConnectionString

类API文档。数据类型:String
默认值:null
连接 URI 示例:readPreferenceTags=dc:ny

maxStalenessSeconds

设置最大过时时间(以秒为单位)。要学习;了解有关过时性的更多信息,请参阅
ConnectionString

类API文档。数据类型:Integer
默认值:null
连接 URI 示例:maxStalenessSeconds=60

连接选项
说明

replicaSet



指定要连接到的副本集的名称。数据类型:String
默认值:null
连接 URI 示例:replicaSet=replicaSet

连接选项
说明

appName

设置应用程序的逻辑名称。客户端可以使用应用程序名称向服务器标识应用程序,以用于服务器日志、慢速查询日志和配置文件集合。数据类型:




String
默认值:null
连接 URI 示例:appName=name

heartbeatFrequencyMS



驾驶员确定集群中每台服务器当前状态的频率(以毫秒为单位)。数据类型:Integer
默认值:null
连接 URI 示例:heartbeatFrequencyMS=6000

localThresholdMS

设置网络探测(ping)时间阈值,以便在多个MongoDB服务器中进行选择以发送请求。设立此值后,驾驶员只会将该请求发送到网络探测(ping)时间小于或等于最快网络探测(ping)时间的服务器加上本地阈值的服务器。数据类型:




Integer
默认值:null
连接 URI 示例:localThresholdMS=6000

serverMonitoringMode

设置服务器监控模式,它定义了要使用的监控协议。枚举值为:streampollauto

。数据类型:Enum
默认值:auto
连接 URI 示例:serverMonitoringMode.auto

serverSelectionTimeoutMS



设置驾驶员在抛出异常之前等待服务器选择成功的时间。数据类型:Integer
默认值:null
连接 URI 示例:serverSelectionTimeoutMS=6000

连接选项
说明

srvServiceName

设置 SRV 服务名称。请参阅
ClusterSettings.getSrvServiceName()


API文档以学习;了解更多信息。数据类型:String
默认值:"mongodb"
连接 URI 示例:srvServiceName=mongodb

SrvMaxHosts

设置

SRV记录中要连接的最大主机数。数据类型:Integer
默认值:null
连接 URI 示例:srvMaxHosts=5

连接选项
说明

safe


设置驾驶员是否确保MongoDB 服务器确认所有写入,否则引发异常。如果为false
,驾驶员不确保MongoDB 服务器确认所有写入。数据类型:

boolean
默认值:null
连接 URI 示例:safe=true

journal




设置驾驶员是否等待服务器将群组提交到磁盘上的日志文件。数据类型:boolean
默认值:null
连接 URI 示例:journal=true

w

如果设立,驾驶员会将{ w : wValue } 添加到所有写入命令中。如果设立,则意味着
safe=True

。数据类型:IntegerString
默认值:null
连接 URI 示例:w=60

wtimeoutMS (已弃用)

此选项已弃用。您可以通过设置客户端级别的超时来配置此超时。如果设立,驾驶员会将



{ wtimeout : ms }添加到所有写入命令中。如果设立,则意味着
safe=true。此选项与w

结合使用。数据类型:Integer
默认值:null
连接 URI 示例:wtimeoutMS=6000

有关本节中连接选项的更多信息,请参阅数据库和集合指南。