对于 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
默认:连接到 MongoDB v4 时为 "SCRAM-SHA-256"。0或更高版本。
"SCRAM-SHA-1" 连接 MongoDB v3 时。0通过 v3.13.
连接 URI 示例authMechanism=MONGODB-X509

authMechanismProperties

设置身份验证机制特定的选项。

数据类型String
默认""
连接 URI 示例authMechanismProperties=AWS_SESSION_TOKEN:12435

authSource

设置身份验证凭证的来源。来源通常是
数据库。仅当authMechanism
设置为MONGO-CR 时,此选项才会生效。

数据类型String
默认值 :连接 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 表示 API 文档。


数据类型String
默认unspecified
连接 URI 示例uuidRepresentation=unspecified

连接选项
说明

proxyHost

建立 SOCKS5 代理托管以建立连接。
proxyHost 的值可以是有效的 IPv4 地址、IPv6
地址或域名。
如果指定了 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

设置最大过时时间,以秒为单位。要了解有关过时的更多信息,
请参阅 Class 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

设置在多个 MongoDB 服务器中选择发送请求的网络探测(ping)时间阈值。


设置此值后,驱动程序只会将该请求发送到网络探测(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
**Connection URI 示例**:w=60

wtimeoutMS (已弃用)

此选项已弃用。您可以通过设置
客户端级别超时
来配置此超时。

如果设置,驱动程序会将 { wtimeout : ms } 添加到所有写入命令。如果
设置,则表示 safe=true。此选项与 w 结合使用。

数据类型Integer
默认null
连接 URI 示例wtimeoutMS=6000

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