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 | A list of potential compressors to use, in order of preference.
The driver chooses the first compressor that is also supported
by the server. Currently the driver only supports zstd , snappy , and zlib .Data Type: Array<String> Default: none Client Example: compressors: ['snappy', 'zstd', 'zlib'] Connection URI Example: compressors=snappy,zstd,zlib |
:zlib_compression_level | The Zlib compression level to use, if using compression.
This option accepts an integer value between -1 and 9 :- -1: zlib uses its default compression level (usually 6 ).- 0: No compression. - 1: Fastest speed but lowest compression. - 9: Best compression but slowest speed. For more information, see Ruby's ZLib module
documentation. Data Type: Integer Default: None Client Example: zlib_compression_level: 3 Connection URI Example: zlibCompressionLevel=3 |
超时
连接选项 | 说明 |
---|---|
:connect_timeout | The number of seconds to wait to establish a socket
connection before raising an exception. This
timeout is also used for SRV DNS record resolution. nil and 0 mean no timeout. Client creation will
fail with an error if an invalid timeout value
is passed (such as a negative value or a non-numeric value).Data Type: Float Default: 10.0 Client Example: connect_timeout: 10.0 Connection URI Example: connectTimeoutMS=10000 |
:timeout_ms | The number of milliseconds to wait for an operation to execute
before raising an exception. 0 means no timeout. Client creation will fail
with an error if an invalid timeout value is passed
(such as a negative value or a non-numeric value).Data Type: Integer Default: none Client Example: timeout_ms: 5000 Connection URI Example: timeoutMS=5000 |
服务器选择
连接选项 | 说明 |
---|---|
:server_selector | Get the server selector. It either uses the read preference
defined in the client options or defaults to a Primary
server selector. For more information on read preference modes, see the
Server Selection Algorithm
documentation in the MongoDB Server manual. Data Type: ServerSelector Default: none Client Example: server_selector: { mode: :secondary_preferred } Connection URI Example: N/A |
:server_selection_timeout | The maximum amount of time, in seconds, the driver waits
for server selection to succeed before throwing an exception. Data Type: Integer Default: 30 Client Example: server_selection_timeout: 30 Connection URI Example: serverSelectionTimeoutMS=30000 |
身份验证
连接选项 | 说明 |
---|---|
:auth_mech | The mechanism that the Ruby driver uses to authenticate the application. Data Type: Symbol Default: :scram256 nil if user credentials are not supplied.Client Example: auth_mech: :scram256 Connection URI Example: authMechanism=SCRAM-SHA-256 |
:auth_mech_properties | Options specific to the authentication mechanism. This option
isn't needed for all authentication mechanisms. Data Type: Hash Default: When you use the GSSAPI authentication mechanism, the default properties are {service_name: "mongodb"} .Otherwise, the default is nil .Client Example: auth_mech_properties: {aws_session_token: '12345'} Connection URI Example: authMechanismProperties=AWS_SESSION_TOKEN:12345 |
:auth_source | The database to authenticate against. Data Type: String Default: admin , if credentials are suppliedClient Example: auth_source: admin Connection URI Example: authSource=admin |
: user | The username for authentication. When this option is included
in a connection URI, you must
percent-encode it. Data Type: String Default: none Client Example: user: my+user Connection URI Example: username=my+user |
:password | The password for authentication. When this option is included
in a connection URI, you must
percent-encode it. Data Type: String Default: none Client Example: password: strong+password Connection URI Example: password=strong+password |
读取和写入操作
连接选项 | 说明 |
---|---|
:replica_set | Specifies the name of the replica set to connect to. Data Type: String Default: none Client Example: replica_set: 'myRS' Connection URI Example: replicaSet=myRS |
:direct_connection | Whether to connect directly to the specified host Data Type: Boolean Default: false Client Example: direct_connection: true Connection URI Example: directConnection=true |
:read | The read preference options. For more information,
see Read Preference in the MongoDB Server manual. Data Type: Hash Default: { mode: :primary } Client Example: read: { mode: :primary } Connection URI Example: readPreference=primary |
:read_concern | Specifies the read concern options. For more information, see
Read Concern in the MongoDB Server manual. Data Type: Hash Default: none Client Example: read: { level: :majority } Connection URI Example: readConcern=majority |
:write_concern | Specifies the client's write concern. For more
information, see Write Concern in
the MongoDB Server manual. Data Type: Hash Default: write_concern: { w: 1 } Client Example: write_concern: { w: 2 } Connection URI Example: w=2 |
:local_threshold | The latency window, in seconds, for a replica-set member's
eligibility. If a member's round trip ping takes longer
than the fastest server's round-trip ping time
plus this value, the server isn't eligible for selection. Data Type: Float Default: 0.015 Client Example: local_threshold: 0.020 Connection URI Example: localThresholdMS=20 |
API 文档
Mongo::Client
有关Ruby驾驶员的 选项的更多信息,请参阅 Mongo::Client 的API文档。