Overview
本节介绍Ruby驱动程序中可用的MongoDB连接和身份验证选项。您可以使用连接 URI(也称为连接字符串)或向 Mongo::Client 构造函数传递参数来配置连接。
使用连接 URI
如果将连接 URI 传递给 Mongo::Client 构造函数,则可以将连接选项作为 <name>=<value> 对包含在字符串中。在以下示例中,连接 URI 包含值为 60000 的 connectTimeoutMS 选项和值为 true 的 tls 选项:
uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true" client = Mongo::Client.new(uri)
使用 Mongo::Client
您可以将连接选项作为参数传递给 Mongo::Client 构造函数,而不是将它们包含在连接 URI 中。以这种方式配置连接时,可以更轻松地在运行时更改设置并在编译期间捕获错误。以下示例演示如何使用 Mongo::Client 构造函数设立连接选项:
uri = "mongodb://<hostname>:<port>" client = Mongo::Client.new(uri, connect_timeout: 60000, ssl: true)
连接选项
以下部分描述了Ruby驱动程序中可用的连接选项。
网络压缩
连接选项 | 说明 |
|---|---|
:compressors | 要使用的潜在压缩器列表,按优先顺序排列。驱动程序会选择服务器也支持的第一个压缩器。目前,驱动程序仅支持 |
:zlib_compression_level | 如果使用压缩,则使用的zlib压缩级别。此选项接受 |
超时
连接选项 | 说明 |
|---|---|
:connect_timeout | 在提出异常之前等待建立套接字连接的秒数。此超时也用于 SRV DNS 记录解析。 |
:timeout_ms | 在引发异常之前等待操作执行的毫秒数。 |
服务器选择
连接选项 | 说明 |
|---|---|
:load_balanced | 是否预计连接到负载均衡器。 |
:server_monitoring_mode | 要使用的服务器监控协议。当此选项设置为 数据类型: |
:server_selection_timeout | 驱动程序在抛出异常之前等待服务器选择成功的最长时间(以秒为单位)。 |
有关服务器选择的更多信息,请参阅服务器选择指南。
身份验证
连接选项 | 说明 |
|---|---|
:auth_mech | Ruby 驱动程序用于验证应用程序的机制。 |
:auth_mech_properties | 针对身份验证机制的选项。此选项并非所有身份验证机制都需要。 |
:auth_source | 要认证的数据库。 |
: user | 用于身份验证的用户名。如果此选项包含在连接 URL 中,则必须对其进行 百分比编码。 |
:password | 用于身份验证的密码。如果此选项包含在连接 URL 中,则必须对其进行 百分比编码。 |
读取和写入操作
连接选项 | 说明 |
|---|---|
:replica_set | 指定要连接的副本集的名称。 |
:direct_connection | 是否直接连接到指定的主机 |
:enable_overload_retargeting | 驱动程序是否会降低返回超负载错误的服务器的优先级,从而降低在同一个超负载服务器上重试的可能性。 |
:max_adaptive_retries | 当驱动程序遇到超负载错误时尝试的最大重试次数。 |
:read | 读取偏好(read preference)选项。有关读取偏好(read preference)的更多信息,请参阅 MongoDB Server 手册中的读取偏好。 |
:read_concern | 指定读关注(read concern)选项。有关详细信息,请参阅 MongoDB Server 手册中的读关注(read concern)。 |
:write_concern | 指定客户端的写关注(write concern)。有关写关注(write concern)的更多信息,请参阅MongoDB Server手册中的写关注。 |
:local_threshold | 副本集节点资格的延迟窗口,以秒为单位。如果节点的往返网络探测(ping)时间超过最快服务器的往返网络探测(ping)时间加上此值,则该服务器没有资格被选中。 |
连接池
连接选项 | 说明 |
|---|---|
:max_pool_size | 连接池维护的并发连接最大数。如果某个服务器的在用连接数达到指定值,则对该服务器的下一个请求将等待,直到出现可用连接。将此选项设置为 |
:max_connecting | 每个池可以同时建立的最大连接数。 |
:min_pool_size | 连接池维护的并发连接最小数。 |
:max_idle_time | 连接在连接池中可以保持空闲状态的最大秒数。 |
有关连接池的更多信息,请参阅 连接池指南。
API 文档
有关Ruby驱动程序的 Mongo::Client 选项的更多信息,请参阅 Mongo::客户端 的API文档。