개요
이 섹션에서는 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
연결 옵션을 연결 URI에 포함하는 대신 Mongo::Client
생성자에 인수로 전달할 수 있습니다. 이러한 방식으로 연결을 구성하면 런타임에 설정을 변경하고 컴파일 중에 오류를 포착하기가 더 쉬워집니다. 다음 예시 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 문서
Ruby 운전자 의 Mongo::Client
옵션에 대한 자세한 내용은 Mongo::Client에 대한 API 설명서를 참조하세요.