struct Mongo::Options

Overview

A set of options used to configure the driver.

NOTE For more details, see the uri options specification document.

Included Modules

Defined in:

cryomongo/uri/options.cr

Constructors

Instance Method Summary

Constructor Detail

def self.new(**args) #

Instance Method Detail

def appname : String? #

Passed into the server in the client metadata as part of the connection handshake


def auth_mechanism : String? #

The authentication mechanism method to use for connection to the server


def auth_mechanism_properties : String? #

Additional options provided for authentication (e.g. to enable hostname canonicalization for GSSAPI)


def auth_source : String? #

The database that connections should authenticate against


def auth_source=(auth_source : String?) #

The database that connections should authenticate against


def compressors : String? #

The list of allowed compression types for wire protocol messages sent or received from the server


def connect_timeout : Time::Span? #

Amount of time to wait for a single TCP socket connection to the server to be established before erroring; note that this applies to SDAM isMaster operations


def direct_connection : Bool? #

Whether to connect to the deployment in Single topology.


def dns_resolver : Durian::Resolver #

Use custom dns resolver. Non-standard.

By default, the Cloudflare public DNS is used. (1.1.1.1)


def heartbeat_frequency : Time::Span #

The interval between regular server monitoring checks


def heartbeat_frequency=(heartbeat_frequency : Time::Span) #

The interval between regular server monitoring checks


def journal : Bool? #

Default write concern "j" field for the client


def local_threshold : Time::Span #

The amount of time beyond the fastest round trip time that a given server’s round trip time can take and still be eligible for server selection


def max_idle_time : Time::Span? #

The amount of time a connection can be idle before it's closed


def max_pool_size : Int32 #

The maximum number of clients or connections able to be created by a pool at a given time


def max_staleness_seconds : Int32? #

The maximum replication lag, in wall clock time, that a secondary can suffer and still be eligible for server selection


def min_pool_size : Int32 #

The maximum number of clients or connections able to be created by a pool at a given time


def mix_with_query_params(options_hash : HTTP::Params) #

def raw : HTTP::Params #

def raw? : HTTP::Params? #

def read_concern_level : String? #

Default read concern for the client


def read_preference : String? #

Default read preference for the client (excluding tags)


def read_preference_tags : Array(String) #

Default read preference tags for the client; only valid if the read preference mode is not primary


def replica_set : String? #

The name of the replica set to connect to


def replica_set=(replica_set : String?) #

The name of the replica set to connect to


def retry_reads : Bool? #

Enables retryable reads on server 3.6+


def retry_writes : Bool? #

Enables retryable writes on server 3.6+


def server_selection_timeout : Time::Span #

A timeout in milliseconds to block for server selection before raising an error


def server_selection_timeout=(server_selection_timeout : Time::Span) #

A timeout in milliseconds to block for server selection before raising an error


def server_selection_try_once : Bool #

Scan the topology only once after a server selection failure instead of repeatedly until the server selection times out


def server_selection_try_once=(server_selection_try_once : Bool) #

Scan the topology only once after a server selection failure instead of repeatedly until the server selection times out


def socket_timeout : Time::Span? #

Amount of time spent attempting to send or receive on a socket before timing out; note that this only applies to application operations, not SDAM


def ssl : Bool? #

Alias of "tls"; required to ensure that Atlas connection strings continue to work


def ssl=(ssl : Bool?) #

Alias of "tls"; required to ensure that Atlas connection strings continue to work


def tls : Bool? #

Whether or not to require TLS for connections to the server


def tls_allow_invalid_certificates : Bool? #

Specifies whether or not the driver should error when the server’s TLS certificate is invalid


def tls_allow_invalid_hostnames : Bool? #

Specifies whether or not the driver should error when there is a mismatch between the server’s hostname and the hostname specified by the TLS certificate


def tls_ca_file : String? #

Path to file with either a single or bundle of certificate authorities to be considered trusted when making a TLS connection


def tls_certificate_key_file : String? #

Path to the client certificate file or the client private key file; in the case that they both are needed, the files should be concatenated


def tls_certificate_key_file_password : String? #

Password to decrypt the client private key to be used for TLS connections


def tls_disable_certificate_revocation_check : Bool? #

Controls whether or not the driver will check a certificate's revocation status via CRLs or OCSP. See the OCSP Support Spec for additional information.


def tls_disable_ocsp_endpoint_check : Bool? #

Controls whether or not the driver will reach out to OCSP endpoints if needed. See the OCSP Support Spec for additional information.


def tls_insecure : Bool? #

Relax TLS constraints as much as possible (e.g. allowing invalid certificates or hostname mismatches); drivers must document the exact constraints which are relaxed by this option being true


def validate(raw_hash) #

def w : Int32 | String | Nil #

Default write concern "w" field for the client


def w_timeout : Time::Span? #

Default write concern "wtimeout" field for the client


def wait_queue_timeout : Time::Span? #

The maximum amount of time a fiber can wait for a connection to become available


def zlib_compression_level : Int32? #

Specifies the level of compression when using zlib to compress wire protocol messages; -1 signifies the default level, 0 signifies no compression, 1 signifies the fastest speed, and 9 signifies the best compression