AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

接続オプションの指定

このセクションでは、 Rubyドライバーで使用できるMongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI (接続文字列とも呼ばれます)を使用するか、Mongo::Client コンストラクターに引数を渡します。

Mongo::Client コンストラクターに接続 URI を渡す場合は、接続オプションを <name>=<value> ペアとして文字列に含めることができます。次の例では、接続 URI に、値が 60000connectTimeoutMS オプションと、値が truetls オプションが含まれています。

uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true"
client = Mongo::Client.new(uri)

接続 URI に接続オプションを含める代わりに、接続オプションを引数として Mongo::Client コンストラクターに渡すことができます。このように接続を構成すると、実行時に設定を変更し、コンパイル中にエラーを検出しやすくなります。次の例は、Mongo::Client コンストラクターを使用して接続オプションを設定する方法を示しています。

uri = "mongodb://<hostname>:<port>"
client = Mongo::Client.new(uri, connect_timeout: 60000, ssl: true)

次のセクションでは、 Rubyドライバーで使用できる接続オプションについて説明します。

接続オプション
説明

:compressors

使用する可能な圧縮機のリストを優先順に並べます。ドライバーは、サーバーでもサポートされている最初の圧縮機を選択します。現在、ドライバーは zstdsnappyzlibのみをサポートしています。

データ型: Array<String>
デフォルト: なし
クライアント例: compressors: ['snappy', 'zstd', 'zlib']
接続 URI 例: compressors=snappy,zstd,zlib

:zlib_compression_level

圧縮を使用する場合に使用する zlib 圧縮レベル。このオプションは、-1 から 9 までの整数値を受け入れます。

- -1: zlib はデフォルトの圧縮レベルを使用します (通常 6)
- 0: 圧縮なし
- 1: 速度は最も速いですが、圧縮は最小です。
- 9: 圧縮には最適ですが、速度は最も遅いです。

詳細については、Ruby の zlib モジュール ドキュメントを参照してください。

データ型: Integer
デフォルト: None
クライアント例: zlib_compression_level: 3
接続 URI 例: zlibCompressionLevel=3

接続オプション
説明

:connect_timeout

例外が発生する前にソケット接続を確立するまでの待機時間を秒単位で指定します。このタイムアウトは、SRV DNS レコード解決にも使用されます。

nil0 はタイムアウトなしを意味します。無効なタイムアウト値(例えば、負の値や数値以外の値)が渡されると、クライアントの作成はエラーになります。

データ型: Float
デフォルト: 10.0
クライアント例: connect_timeout: 10.0
接続 URI 例: connectTimeoutMS=10000

:timeout_ms

操作が実行されるまでエラーが発生する前に待機するミリ秒数。

0 を指定すると、タイムアウトは発生しません。無効なタイムアウト値(例えば、負の値や数値以外の値)が渡されると、クライアントの作成はエラーになります。

データ型: Integer
デフォルト: なし
クライアントの例: timeout_ms: 5000
接続 URI の例: timeoutMS=5000

接続オプション
説明

:load_ ユーザー分散

ロード バランサーへの接続を要求するかどうか。

データ型: Boolean
デフォルト: false
クライアント例: load_balanced: { true }
接続 URI 例: N/A

:server_monitoring_mode

使用するサーバーモニタリングプロトコル。このオプションを :auto に設定すると、モニタリングモードはドライバーが実行されている環境によって決定されます。ドライバーは、Amazon Web Services Lambda などの FaaS(function-as-a-service)環境ではポーリング モードを使用し、その他の環境ではストリーミング モードを使用します。

データ型: Symbol
デフォルト: :auto
クライアント例: server_monitoring_mode: :poll
接続URI例: serverMonitoringMode=poll

:server_Selection_timeout

ドライバーが例外をスローする前に、サーバー選択が成功するまで待機する最大時間を秒単位で指定します。

データ型: Integer
デフォルト: 30
クライアント例: server_selection_timeout: 30
接続 URI 例: serverSelectionTimeoutMS=30000

サーバー選択の詳細については、 サーバー選択ガイド を参照してください。

接続オプション
説明

:auth_mech

Ruby ドライバーがアプリケーションを認証するために使用するメカニズム。

データ型: Symbol
デフォルト: :scram256
ユーザー認証情報が提供されていない場合は nil
クライアント例: auth_mech: :scram256
接続 URI 例: authMechanism=SCRAM-SHA-256

:auth_mech_properties

認証メカニズムに固有のオプション。このオプションは、すべての認証メカニズムに必要とは限りません。

データ型: Hash
デフォルト: GSSAPI 認証メカニズムを使用する場合、
デフォルトのプロパティは {service_name: "mongodb"} です。
そうでない場合、デフォルトは nil です。
クライアント例: auth_mech_properties: {aws_session_token: '12345'}
接続 URI 例: authMechanismProperties=AWS_SESSION_TOKEN:12345

:auth_source

認証するデータベース。

データ型: String
デフォルト: admin (認証情報が提供される場合)
クライアント例: auth_source: admin
接続 URI 例: authSource=admin

:user

認証するユーザー名。このオプションが接続 URI に含まれている場合は、パーセントエンコードする必要があります。

データ型: String
デフォルト: なし
クライアント例: user: my+user
接続 URI 例: username=my+user

:password

認証用のパスワード。このオプションが接続 URI に含まれている場合は、パーセントエンコードする必要があります。

データ型: String
デフォルト: なし
クライアント例: password: strong+password
接続 URI 例: password=strong+password

接続オプション
説明

:replica_set

接続先のレプリカセットの名前を指定します。

データ型: String
デフォルト: なし
クライアント例: replica_set: 'myRS'
接続 URI 例: replicaSet=myRS

:direct_ connection

指定されたホストに直接接続するかどうか

データ型: Boolean
デフォルト: false
クライアント例: direct_connection: true
接続 URI 例: directConnection=true

:enable_overload_re targeting

ドライバーが過負荷エラーを返すサーバーの優先順位を低くし、同じ過負荷サーバーで再試行する可能性を低減させるかどうか。

データ型: Boolean
デフォルト: false
クライアント例: enable_overload_retargeting: true
接続 URI 例: enableOverloadRetargeting=true

:max_adapactive_retry

ドライバーで過負荷エラーが発生した場合に試行する再試行の最大回数。

データ型: Integer
デフォルト: 2
クライアント例: max_adaptive_retries: 3
接続 URI 例: maxAdaptiveRetries=3

:read

読み込み設定 (read preference)オプション。詳細については、MongoDB Serverマニュアルの読み込み設定 (read preference)を参照してください。

データ型: Hash
デフォルト: { mode: :primary }
クライアント例: read: { mode: :primary }
接続 URI 例: readPreference=primary

:read_concern

読み取り保証 (read concern) オプションを指定します。詳細については、MongoDB Server マニュアルの「読み取り保証 (read concern)」を参照してください。

データ型: Hash
デフォルト: なし
クライアント例: read: { level: :majority }
接続 URI 例: readConcern=majority

:write_concern

クライアントの書込み保証 (write concern)を指定します。書込み保証 (write concern) の詳細については、MongoDB Server マニュアルの「書込み保証 (write concern)」を参照してください。

データ型: Hash
デフォルト: write_concern: { w: 1 }
クライアント例: write_concern: { w: 2 }
接続 URI 例: w=2

:local_threshold

レプリカセットのノードの選択対象となるまでのレイテンシ ウィンドウ(秒単位)。ノードの往復 ping 時間が、最速のサーバーの往復 ping 時間とこの値の合計より長い場合、そのサーバーは選択対象になりません。

データ型: Float
デフォルト: 0.015
クライアント例: local_threshold: 0.020
接続 URI 例: localThresholdMS=20

接続オプション
説明

:max_Pool_size

プールが維持する同時接続の最大数。サーバーへの使用中の接続数が指定された値に達した場合、そのサーバーへの次のリクエストは接続が利用可能になるまで待機します。このオプションを 0 に設定すると、無制限の接続プールが作成されます。

データ型: Integer
デフォルト: 100
クライアント例: max_pool_size: 100
接続 URI 例: maxPoolSize=100

:max_connecting

各プールが同時に確立できる最大接続数。

データ型: Integer
デフォルト: 2
クライアント例: max_connecting: 2
接続 URI 例: maxConnecting=2

:min_Pool_size

プールが維持する同時接続の最小数。

データ型: Integer
デフォルト: 0
クライアント例: min_pool_size: 1
接続 URI 例: minPoolSize=1

:max_idle_time

接続がプール内でアイドル状態を維持できる最大時間(秒)。

データ型: Integer
デフォルト: 0 (制限なし)
クライアント例: max_idle_time: 10
接続 URI 例: maxIdleTimeMS=10000

接続プールの詳細については、接続プールガイドを参照してください。

Rubyドライバーの Mongo::Client オプションの詳細については、Mongo::Client のAPIドキュメントを参照してください。