AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

接続オプションの指定

このセクションでは、 Rustドライバーで使用できるMongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI (接続文字列とも呼ばれます)を使用するか、Client の作成時に ClientOptionsインスタンスにフィールドを設定します。

接続 URI を Client::with_uri_str メソッドに渡す場合は、接続オプションを <name>=<value> ペアとして string に含めることができます。次の例では、値が 60000 である connectTimeoutMS オプションと、値が true である tls オプションを含む接続 URI を示しています。

use mongodb::Client;
let uri = "mongodb://<hostname>:<port>/?connectTimeoutMS=60000&tls=true";
let client = Client::with_uri_str(uri).await?;

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

use std::time::Duration;
use mongodb::{Client, options::ClientOptions};
let uri = "mongodb://<hostname>:<port>/";
let mut client_options = ClientOptions::parse(uri).await?;
client_options.connect_timeout = Some(Duration::from_secs(60000));
//Set additional options on client_options here
let client = Client::with_options(client_options)?;

次のセクションでは、 Rustドライバーで使用できる接続オプションについて説明します。接続オプションの完全なリストを表示するには、サーバー マニュアルガイドの「接続文字列 オプション」セクションにアクセスしてください。

オプション名
許容値
デフォルト値
説明

compressors

文字列のコンマ区切りリスト

なし

Clientインスタンスが指定された順序で使用するコンプレッサーを指定します。ネットワーク圧縮の詳細については、「
ネットワーク圧縮ガイド 」を参照してください。

zlibCompressionLevel

0 から 9 までの整数

6

zlibコンプレッサーを使用する場合、 圧縮のレベルフィールドを指定します。レベルの値が大きいほど圧縮が行われますが、これは遅くなります。
09の値を設定すると圧縮は行われず、
の値を設定すると最大圧縮が指定されます。ネットワーク圧縮の詳細については、「 ネットワーク圧縮ガイド 」を参照してください。

オプション名
許容値
デフォルト値
説明

connectTimeoutMS

Non-negative integer

10000 (10 秒)

サーバーに接続するときに、基礎の各 TCP ストリームに渡される接続タイムアウトをミリ秒単位で指定します。

オプション名
許容値
デフォルト値
説明

heartbeatFrequencyMS

500 以上の整数

10000 (10 秒)

各監視スレッドがサーバー チェックの実行間で待機する時間をミリ秒単位で指定します。

maxStalenessSeconds

-1、または 以上の任意の整数 90

-1

指定された操作でセカンダリノードが考慮される、プライマリノードよりの最大遅延を秒単位で指定します。このオプションの値は少なくとも でなければなりません。そうでない場合、操作はエラーを発生させます。値が
90-1の場合、最大遅延がないことを意味します。

serverSelectionTimeoutMS

Non-negative integer

30000 (30 秒)

Clientインスタンスがタイムアウトする前に操作のサーバーを選択しようとする際に待機する時間をミリ秒単位で指定します。

オプション名
許容値
デフォルト値
説明

authMechanism

文字列

なし

使用する認証メカニズムを指定します。 このオプションを指定しない場合、ドライバーはデフォルトの認証メカニズムを使用します。 Rust ドライバーでの認証の詳細については、「認証メカニズム 」に関するガイドを参照してください。

authMechanismProperties

文字列

なし

authMechanismオプションで設定された認証メカニズムの詳細なプロパティを指定します。

authSource

文字列

説明を参照してください


admin認証に使用されるデータベースを指定します。このオプションのデフォルトは、SCRAM$external ベースの認証メカニズムの場合はMONGODB-X509 $externalPLAIN メカニズムの場合は 、 メカニズムの場合はデータベース名または です。

tls

ブール値

false

インスタンスがサーバーとの接続で使用する TLS 構成を指定します。デフォルトではClient
、TLS はオフになっています。

tlsAllowInvalidCertificates

ブール値

false

Clientサーバーが無効な証明書を提示した場合に インスタンスがエラーを返すかどうかを指定します。アプリケーションに脆弱性が生じないように、テスト環境でのみこのオプションを
trueに設定することをお勧めします。

tlsCAFile

文字列

説明を参照してください

インスタンスが TLS に使用する認証局(CA)ファイルへのパスを指定します。このオプションを指定しない場合、ドライバーはClient
webpki-rootscrateの Mozilla ルート証明書を使用します。

tlsCertificateKeyFile

文字列

なし

Clientインスタンスが識別を確認するためにサーバーに提示する証明書ファイルへのパスを指定します。このオプションを設定しない場合、
Clientインスタンスはサーバーへの ID の確認を試行しません。

tlsCertificateKeyFilePassword

文字列

なし

キーが暗号化されている場合は、 証明ファイル内の秘密キーを復号化するためのパスワードを指定します。

tlsInsecure

ブール値

false

Clientサーバーが無効な証明書を提示した場合に インスタンスがエラーを返すかどうかを指定します。アプリケーションに脆弱性が生じないように、テスト環境でのみこのオプションを
trueに設定することをお勧めします。

オプション名
許容値
デフォルト値
説明

directConnection

ブール値

false

Clientインスタンスがクラスター内のすべてのサーバーを検出して接続するのではなく、単一のホストに直接接続するかどうかを指定します。

enableオーバーロードリターゲティング

ブール値

false

ドライバーが過負荷エラーを返すサーバーの優先順位を下げ、同じ過負荷サーバーで再試行する可能性を減らすかどうかを指定します。

journal

ブール値

false

操作がディスク上のジャーナルに伝達されたことの確認を要求します。

localThresholdMS

Non-negative integer

15

ドライバーとサーバー間の平均ラウンドトリップ時間が、すべての適切なサーバーの最短ラウンドトリップ時間と比較して、続く時間をミリ秒単位で指定します。
0の場合は、レイテンシウィンドウがないため、平均ラウンドトリップ時間が最も低いサーバーのみが対象となります。

maxAdvancedRetrys

Non-negative integer

2

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

readConcernLevel

文字列

なし

インスタンスで実行される操作のデフォルトの読み取り保証 (read concern)を指定します。詳細については、サーバーClient
マニュアルの「 読み取り保証 」を参照してください。

readPreference

文字列

primary

ドライバーがレプリカセットのメンバーに読み取り操作をルーティングする方法を指定します。詳細については、サーバー
マニュアルの「 読み込み設定 」を参照してください。

readPreferenceTags

キーと値のペアをコンマで区切ったリスト

なし

どのレプリカセットノードを操作の対象にするかを指定します。このキーの各インスタンスは、個別のタグセットです。ドライバーは、セット内の各タグを持つ
1 つまたは複数のサーバーを見つけるまで、各タグセットをチェックします。

replicaSet

文字列

なし

Clientインスタンスが接続するレプリカセットの名前を指定します。

retryReads

ブール値

true

操作が失敗した場合にクライアントが読み取り操作を再試行するかどうかを指定します。

w

負でない整数または文字列

なし

特定の数または種類のサーバーに操作が反映されたことの確認応答を要求します。詳細については、サーバー
マニュアルの「 書込み保証 」を参照してください。

wTimeoutMS

Non-negative integer

タイムアウトなし

書込み保証 (write
concern)の時間制限をミリ秒単位で指定します。制限時間内に操作が要求されたレベルに伝達されなかった場合、ドライバーはエラーを発生させます。

オプション名
許容値
デフォルト値
説明

maxIdleTimeMS

Non-negative integer

0

サーバーが接続プールを閉じる前に接続が接続プール内でアイドル状態を維持できる時間をミリ秒単位で指定します。値が
0の場合、クライアントはアイドル接続を閉じないことを示します。

maxPoolSize

Non-negative integer

10

Clientインスタンスが特定のサーバーの接続プールに作成できる接続の最大数を指定します。
maxPoolSize接続の値がチェックアウトされているときに操作を実行しようとすると、その操作は進行中の操作が完了し、接続がプールに戻るまで待機します。

minPoolSize

Non-negative integer

0

特定の時点でサーバーの接続プールで利用可能な接続の最小数を指定します。プールにある接続が
minPoolSize未満の場合、サーバーはバックグラウンドの接続をminPoolSize の値まで追加します。

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

オプション名
許容値
デフォルト値
説明

appName

文字列

なし

Clientハンドシェイクの一環として、 インスタンスがサーバーに送信するアプリケーション名を指定します。
appNameを指定すると、サーバーログを使用してどのClient インスタンスがサーバーに接続されているかを判断するのに役立ちます。

Rustドライバーの ClientOptions の詳細については、ClientOptions.のAPIドキュメントを参照してください。