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 | |
:password |
读取和写入操作
连接选项 | 说明 |
|---|---|
:replica_set |
|
:direct_connection |
|
:enable_overload_retargeting |
|
:max_adaptive_retries |
|
:read | |
:read_concern | |
:write_concern | |
:local_threshold | 副本集成员资格的延迟窗口(以秒为单位)。如果成员的往返网络探测(ping)比最快服务器的往返网络探测(ping)时间加上此值还要长,则该服务器没有资格参与选择。数据类型: |
连接池
连接选项 | 说明 |
|---|---|
:max_pool_size | 池维护的最大并发连接数。如果正在使用的服务器连接数达到指定值,则对该服务器的下一个请求将等待,直到出现可用连接。将此选项设置为 将创建一个不受限制的连接池。数据类型: |
:max_connecting |
|
:min_pool_size |
|
:max_idle_time |
|
有关连接池的更多信息,请参阅 连接池指南。
API 文档
有关Ruby驱动程序的 Mongo::Client 选项的更多信息,请参阅 Mongo::客户端 的API文档。