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

指定连接选项

本节介绍Ruby驱动程序中可用的MongoDB连接和身份验证选项。您可以使用连接 URI(也称为连接字符串)或向 Mongo::Client 构造函数传递参数来配置连接。

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

uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"
client = Mongo::Client.new(uri)

您可以将连接选项作为参数传递给 Mongo::Client 构造函数,而不是将它们包含在连接 URI 中。以这种方式配置连接时,可以更轻松地在运行时更改设置并在编译期间捕获错误。以下示例演示如何使用 Mongo::Client 构造函数设立连接选项:

uri = "mongodb://<hostname>:<port>"
client = Mongo::Client.new(uri, connect_timeout: 60000, ssl: true)

以下部分描述了Ruby驱动程序中可用的连接选项。

连接选项
说明

:compressors

要使用的潜在压缩器列表(按优先顺序排列)。驾驶员会选择服务器也支持的第一个压缩程序。目前,驾驶员仅支持zstdsnappyzlib

。数据类型:Array<String>
默认值:无
客户端示例:compressors: ['snappy', 'zstd', 'zlib']
连接 URI 示例:compressors=snappy,zstd,zlib

:zlib_compression_level

要使用的 Zlib 压缩级别(如果使用压缩)。此选项接受-19

之间的整数值:- -1 : zlib使用其默认压缩级别(通常是6 )。
-0 :无压缩。
-1 :速度最快,但压缩率最低。
-9 :压缩最佳,但速度最慢。有关更多信息,请参阅

Ruby 的 ZLib

模块文档。数据类型:Integer
None
默认值: 客户端示例:zlib_compression_level: 3
连接 URI 示例:zlibCompressionLevel=3

连接选项
说明

:connect_timeout

引发异常之前等待建立套接字连接的秒数。此超时还用于 SRV DNS记录解析。

nil0 平均值无超时。如果传递了无效的超时值(例如负值或非数字值),则创建客户端将失败并显示错误。数据类型:

Float
默认值:10.0
客户端示例:connect_timeout: 10.0
连接 URI 示例:connectTimeoutMS=10000

:timeout_ms



0引发异常之前等待操作执行的毫秒数。

表示无超时。如果传递了无效的超时值(例如负值或非数字值),则创建客户端将失败并显示错误。数据类型:Integer
默认值:无
客户端示例:timeout_ms: 5000
连接 URI 示例:timeoutMS=5000

连接选项
说明

:load_balanced

是否期望连接到负载负载均衡器。数据类型:

Boolean
默认值:false
客户端示例:load_balanced: { true }
连接 URI 示例:不适用

:server_monitoring_mode

要使用的服务器监控协议。当此选项设立为 :auto 时,监控模式由驾驶员运行的环境决定。驾驶员在函数即服务 (FaaS) 环境(例如 AWS Lambda )中使用轮询模式,在其他环境中使用流媒体模式。

数据类型:Symbol
默认值::auto
客户端示例:server_monitoring_mode: :poll
连接 URI 示例:serverMonitoringMode=poll

:server_selection_timeout



驾驶员在抛出异常之前等待服务器选择成功的最长时间(以秒为单位)。数据类型:Integer
默认值:30
客户端示例:server_selection_timeout: 30
连接 URI 示例:serverSelectionTimeoutMS=30000

有关服务器选择的更多信息,请参阅服务器选择指南

连接选项
说明

:auth_mech

Ruby驾驶员用于对应用程序进行身份验证的机制。数据类型:

默认值:如果未提供用户凭证,则为Symbol
:scram256
nil
。客户端示例:auth_mech: :scram256
连接 URI 示例:authMechanism=SCRAM-SHA-256

:auth_mech_properties



特定于身份验证机制的选项。并非所有身份验证机制都需要此选项。数据类型:Hash
默认值:使用 GSSAPI身份验证机制时,默认属性为 。否则,默认值为
{service_name: "mongodb"}
nil
。客户端示例:auth_mech_properties: {aws_session_token: '12345'}
连接 URI 示例:authMechanismProperties=AWS_SESSION_TOKEN:12345

:auth_source



要进行身份验证的数据库。数据类型:String
默认值:admin
(如果提供了凭证)客户端示例:auth_source: admin
连接 URI 示例:authSource=admin

: user

用于身份验证的用户名。当此选项包含在连接 URI 中时,您必须对其进行百分比编码。数据类型:

String
默认值:无
客户端示例:user: my+user
连接 URI 示例:username=my+user

:password

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

中时,您必须对其进行百分比编码。数据类型:String
默认值:无
客户端示例:password: strong+password
连接 URI 示例:password=strong+password

连接选项
说明

:replica_set



指定要连接到的副本集的名称。数据类型:String
默认值:无
客户端示例:replica_set: 'myRS'
连接 URI 示例:replicaSet=myRS

:direct_connection



是否直接连接到指定托管数据类型:Boolean
默认值:false
客户端示例:direct_connection: true
连接 URI 示例:directConnection=true

:enable_overload_retargeting



驾驶员是否降低返回过载错误的服务器的优先级,从而降低在同一台过载服务器上重试的可能性。数据类型:Boolean
默认值:false
客户端示例:enable_overload_retargeting: true
连接 URI 示例:enableOverloadRetargeting=true

:max_adaptive_retries



驾驶员遇到过载错误时的最大重试次数。数据类型:Integer
默认值:2
客户端示例:max_adaptive_retries: 3
连接 URI 示例:maxAdaptiveRetries=3

:read

读取偏好(read preference)选项。有关更多信息,请参阅MongoDB Server手册中的读取偏好。数据类型:

Hash
默认值:{ mode: :primary }
客户端示例:read: { mode: :primary }
连接 URI 示例:readPreference=primary

:read_concern

指定读关注(read concern)选项。有关更多信息,请参阅MongoDB Server手册中的读关注。数据类型:

Hash
默认值:无
客户端示例:read: { level: :majority }
连接 URI 示例:readConcern=majority

:write_concern

指定客户端的写关注(write concern)。有关更多信息,请参阅MongoDB Server手册中的写关注。数据类型:

Hash
默认值:write_concern: { w: 1 }
客户端示例:write_concern: { w: 2 }
连接 URI 示例:w=2

:local_threshold

副本集成员资格的延迟窗口(以秒为单位)。如果成员的往返网络探测(ping)比最快服务器的往返网络探测(ping)时间加上此值还要长,则该服务器没有资格参与选择。数据类型:

Float
默认值:0.015
客户端示例:local_threshold: 0.020
连接 URI 示例:localThresholdMS=20

连接选项
说明

:max_pool_size

池维护的最大并发连接数。如果正在使用的服务器连接数达到指定值,则对该服务器的下一个请求将等待,直到出现可用连接。将此选项设置为 将创建一个不受限制的连接池。数据类型:0

Integer
默认值:100
客户端示例:max_pool_size: 100
连接 URI 示例:maxPoolSize=100

:max_connecting



每个池可以同时建立的最大连接数。数据类型:Integer
默认值:2
客户端示例:max_connecting: 2
连接 URI 示例:maxConnecting=2

:min_pool_size



池维护的最小并发连接数。数据类型:Integer
默认值:0
客户端示例:min_pool_size: 1
连接 URI 示例:minPoolSize=1

:max_idle_time



连接在连接池中可以保持空闲状态的最大秒数。数据类型:Integer
默认值:0 (无限制)
客户端示例:max_idle_time: 10
连接 URI 示例:maxIdleTimeMS=10000

有关连接池的更多信息,请参阅 连接池指南。

有关Ruby驱动程序的 Mongo::Client 选项的更多信息,请参阅 Mongo::客户端 的API文档。