このセクションでは、.NET/C# ドライバーで使用できる MongoDB の接続オプションと認証オプションについて説明します。接続を構成するには、接続 URI または MongoClientSettings オブジェクトのいずれかを使用します。
接続 URI の使用
MongoClient コンストラクターに接続 URI を渡す場合は、接続オプションを <name>=<value> ペアとして文字列に含めることができます。次の例では、接続 URI に、値が 60000 の connectTimeoutMS オプションと、値が true の tls オプションが含まれています。
using MongoDB.Driver; // Sets the connection URI const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true"; // Creates a new client and connects to the server var client = new MongoClient(connectionUri);
使用 MongoClientSettings
MongoClientSettings オブジェクトを使用すると、接続 URI ではなくコードで接続設定を構成できます。このように接続を構成すると、実行時に設定を変更しやすくなり、コンパイル中にエラーを検出しやすくなり、接続 URI よりも多くの構成オプションが提供されます。
MongoClientSettings オブジェクトを使用するには、クラスのインスタンスを作成し、そのプロパティを設定して、それを引数として MongoClient コンストラクターに渡します。
//const string connectionUri = "mongodb+srv://sample.host:27017/?connectTimeoutMS=60000&tls=true"; // Creates a MongoClientSettings object var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("sample.host", 27017), ConnectTimeout = new TimeSpan(0, 0, 60), UseTls = true }; // Creates a new client and connects to the server var client = new MongoClient(settings);
接続オプション
次の表は、MongoClientSettings クラスで使用できる各接続オプションと、可能な場合は接続文字列で同じ結果を達成する方法を示しています。MongoClientSettings プロパティが接続文字列内の複数のオプションにマップされている場合、接続 URI の例には関連するすべてのオプションが表示されます。
注意
時間範囲にクエリ パラメーターを使用する場合、値はミリ秒単位でなければなりません。たとえば、60 秒を指定するには、値 60000 を使用します。時間範囲に MongoClientSettings オブジェクトを使用している場合は、適切な TimeSpan 値を使用します。
MongoClientSettings プロパティ | 説明 | |||
|---|---|---|---|---|
AllowInsecureTls | TLS 制約を可能な限り緩和するかどうかを指定します。 | |||
ApplicationName |
| |||
AutoEncryptionOptions |
| |||
ClusterConfigurator | ソケット、TLS、クラスターなどの低レベル構成オプション。データ型: | |||
コンプレッサー | サーバーとの間で送受信されるワイヤプロトコル メッセージの 優先圧縮タイプ | |||
ConnectTimeout | タイムアウトする前にドライバーがサーバーへの単一の TCP ソケット接続を確立しようとする時間の長さ | |||
Credentials | ドライバーがサーバーに対して認証する方法の設定。これには、認証情報、メカニズム、ソース、およびその他の設定が含まれます。認証メカニズムを指定しない | |||
DirectConnection | すべての 操作をホストに強制的にディスパッチするかどうかを指定します。このオプションを指定すると、ドライバーは | |||
HeartbeatInterval | 定期的なサーバーモニタリングチェックの間隔。 | |||
HeartbeatTimeout | モニタリングソケットがタイムアウトするまでアイドル状態を維持できる時間の長さ。 | |||
IPv6 | ホスト アドレスが IPv6形式であるかどうかを指定します。 | |||
IsFrozen | 設定が固定されているかどうかを示します。凍結された設定は変更できません。 | |||
LinqProvider | 使用する LINQ | |||
LoadBalanced | ドライバーがロード バランサーに接続しているかどうかを指定します。この
データ型: | |||
LocalThreshold | サーバーの適格性のレイテンシ ウィンドウ。 | |||
LoggingSettings | ログ記録 | |||
MaxConnecting |
| |||
MaxConnectionIdleTime | ドライバーが接続を閉じる前に接続がアイドル状態になることができる時間の長さ。 | |||
MaxConnectionLifeTime | 接続が期限切れる前にプールできる時間の長さ。 | |||
MaxConnectionPoolSize |
| |||
MinConnectionPoolSize | 操作が行われていない場合でも、ドライバーが接続プールに作成し維持する接続の数。 | |||
ReadConcern | The client's default read concern. | |||
ReadEncoding | string のデシリアライズに使用する UTF-8 エンコーディング。 | |||
ReadPreference | クライアントのデフォルトの読み取り設定。 接続 URI に | |||
ReplicaSetName | 接続するレプリカセットの名前。 | |||
RetryReads | 再試行可能な読み取りを有効にします。 | |||
RetryWrites | 再試行可能な書き込みを有効にします。 | |||
スキーム | 標準の接続文字列形式( | |||
サーバー | MongoDBが | |||
ServerApi | 安定したAPIバージョン管理を選択できるようになります。 Stable API | |||
ServerMonitoringMode | 使用するサーバー監視プロトコルを指定します。このオプションを に設定すると、モニタリングモードはドライバーがを実行中いる環境によって決まります。ドライバーは、 | |||
サーバー | The cluster members where MongoDB is running. | |||
ServerSelectionTimeout | ドライバーがタイムアウトする前にサーバーを選択しようとする時間の長さ。 | |||
SocketTimeout |
| |||
SrvMaxHosts | シードリストを初期化するとき、または SRV ポーリング中にトポロジーに新しいホストするを追加するときにランダムに選択する SRV 結果の最大数。 | |||
SrvServiceName | The service name of the SRV resource records | |||
SslSettings | TLS/SSL | |||
UseTls | サーバーへの接続に TLS を必要とするかどうかを指定します。 | |||
WaitQueueTimeout |
| |||
WriteConcern | クライアントのデフォルトの書込み保証 (write concern) 設定(書込み (write) タイムアウトやジャーナリングを含む)。詳しくは、 | |||
WriteEncoding | UTF-8 string の直列化が厳密か緩やかを指定します。 |