Overview
このページでは、 .NET/ C#ドライバーで使用できる接続オプションについて説明し、それらをMongoDB接続に適用する方法について説明します。
接続オプションを指定する方法
次のセクションでは、接続オプションを指定する方法について説明します。
接続 URI の使用
MongoClient
コンストラクターに接続 URI を渡す場合は、接続オプションを<name>=<value>
ペアとして string に含めることができます。 次の例では、接続 URI に、値が60000
のconnectTimeoutMS
オプションと、値がtrue
のtls
オプションが含まれています。
const string uri = "mongodb+srv:/localhost:27017/?connectTimeoutMS=60000&tls=true";
接続 URI で指定できるオプションの詳細については、 MongoDB Serverマニュアルの 接続文字列オプション を参照してください。
MongoClientSettings の使用
MongoClientSettings
オブジェクトを使用すると、接続 URI ではなくコードで接続設定を構成できます。このように接続を構成すると、実行時に設定を変更しやすくなり、コンパイル中にエラーを検出しやすくなり、接続 URI よりも多くの構成オプションが提供されます。
MongoClientSettings
オブジェクトで接続オプションを設定するには、次の手順を実行します。
MongoClientSettings
クラスのインスタンスを作成する接続を構成するためのインスタンスのプロパティを設定します
インスタンスを
MongoClient
コンストラクターに渡す
次のコード例は、前述の手順を実行する方法を示しています。
var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("localhost", 27017), ConnectTimeout = TimeSpan.FromMilliseconds(60000), UseTls = true }; var client = new MongoClient(settings);
次の例に示すように、MongoClientSettings.FromConnectionString()
メソッドを呼び出し、接続文字列を渡すことで、接続文字列から MongoClientSettings
オブジェクトを作成することもできます。 これは、接続文字列はすでにあるが、一部の設定をプログラムで変更したい場合や、接続文字列で使用できない設定を指定する必要がある場合に役立ちます。
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var settings = MongoClientSettings.FromConnectionString(connectionUri); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
あるいは、次の例に示すように、MongoClientSettings.FromUrl()
メソッドを呼び出し、MongoUrl
オブジェクトを渡すことで、MongoUrl
オブジェクトから MongoClientSettings
オブジェクトを作成することもできます。これは、MongoUrl
オブジェクトはすでに存在するが、MongoUrl
クラスでは利用できない設定を指定する場合に便利です。
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var url = new MongoUrl(connectionUri); var settings = MongoClientSettings.FromUrl(url); settings.ServerApi = new ServerApi(ServerApiVersion.V1); var client = new MongoClient(settings);
MongoUrlBuilder の使用
MongoUrlBuilder
オブジェクトを使用して、MongoUrl
オブジェクトの接続設定を作成および構成できます。MongoUrl
は、接続 URI の厳密に型指定された表現であり、別のソースから接続 URI を直接読み取る場合に便利です。MongoUrl
オブジェクトの使用には、 MongoClientSettings
オブジェクトの使用と同じ利点が多数ありますが、これら 2 つのクラスに含まれるプロパティとメソッドは異なります。
MongoUrlBuilder
オブジェクトを使用するには、クラスのインスタンスを作成し、必要な構成プロパティを設定します。MongoUrlBuilder
から MongoUrl
オブジェクトを作成するには、MongoUrlBuilder.ToMongoUrl()
メソッドを呼び出します。MongoUrl
オブジェクトをMongoClient
コンストラクターに渡すことができます。次のコード例は、このプロセスを示しています。
const string connectionUri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"; var builder = new MongoUrlBuilder(connectionUri) { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream }; var url = builder.ToMongoUrl(); var client = new MongoClient(url);
接続オプション
次のセクションでは、 .NET/ C#ドライバーで使用できる接続オプションと、MongoClientSettings
または MongoUrlBuilder
オブジェクトを使用してそれらを指定する方法について説明します。
レプリカセット オプション
DirectConnection
すべての操作をホストに強制的にディスパッチするかどうかを指定します。このオプションを指定すると、ドライバーはDNSシードリスト接続形式を受け入れません。代わりに、標準の接続 URI形式を使用する必要があります。デフォルト値は false
です。
複数のホスト名を指定する場合、このプロパティを false
に設定する必要があります。
var settings = new MongoClientSettings { DirectConnection = true, };
ReplicaSetName
接続するレプリカセットの名前。 デフォルト値は null
です。
var settings = new MongoClientSettings { ReplicaSetName = "yourReplicaSet", };
DirectConnection
すべての操作をホストに強制的にディスパッチするかどうかを指定します。このオプションを指定すると、ドライバーはDNSシードリスト接続形式を受け入れません。代わりに、標準の接続 URI形式を使用する必要があります。デフォルト値は false
です。
複数のホスト名を指定する場合、このプロパティを false
に設定する必要があります。
var builder = new MongoUrlBuilder { DirectConnection = true, };
ReplicaSetName
接続するレプリカセットの名前。 デフォルト値は null
です。
var builder = new MongoUrlBuilder { ReplicaSetName = "yourReplicaSet", };
TLS のオプション
AllowInsecureTls
TLS 制約を可能な限り緩和するかどうかを指定します。これには、無効な証明書またはホスト名の不一致を許可することが含まれます。デフォルト値は false
です。
このプロパティが true
に設定され、かつ SslSettings.CheckCertificateRevocation
が false
に設定されている場合、 .NET/ C#ドライバーは例外をスローします。
次のコード例は、このオプションを true
に設定する方法を示しています。
var settings = new MongoClientSettings { AllowInsecureTls = true, };
SslSettings
TLS/SSL オプションには、クライアント証明書、失効処理、TLS/SSL プロトコルの有効化と無効化などがあります。デフォルト値は null
です。
SslSettings.CheckCertificateRevocation
が false
に設定され、AllowInsecureTls
が true
に設定されている場合、 .NET/ C#ドライバーは例外をスローします。
var settings = new MongoClientSettings(); settings.SslSettings = new SslSettings() { CheckCertificateRevocation = false, ClientCertificateSelectionCallback = new LocalCertificateSelectionCallback() { ... }, ClientCertificates = new List<X509Certificate>() { ... }, EnabledSslProtocols = SslProtocols.Tls13, ServerCertificateValidationCallback = new RemoteCertificateValidationCallback() { ... } };
UseTls
サーバーへの接続に TLS を必要とするかどうかを指定します。"mongodb+srv"
のスキームを使用するか、他の TLS オプションを指定する場合、このオプションはデフォルトで true
になります。それ以外の場合、デフォルトは false
になります。
var settings = new MongoClientSettings { UseTls = true, };
AllowInsecureTls
TLS 制約を可能な限り緩和するかどうかを指定します。これには、無効な証明書またはホスト名の不一致を許可することが含まれます。デフォルト値は false
です。
このプロパティが true
に設定され、かつ SslSettings.CheckCertificateRevocation
が false
に設定されている場合、 .NET/ C#ドライバーは例外をスローします。
次のコード例は、このオプションを true
に設定する方法を示しています。
var builder = new MongoUrlBuilder { AllowInsecureTls = true, };
TlsDisableCertificateReplicationCheck
TLS ハンドシェイク中に証明書失効チェックを無効にするかどうか。デフォルト値は false
です。
var builder = new MongoUrlBuilder { TlsDisableCertificateRevocationCheck = true };
UseTls
サーバーへの接続に TLS を必要とするかどうかを指定します。"mongodb+srv"
のスキームを使用するか、他の TLS オプションを指定する場合、このオプションはデフォルトで true
になります。それ以外の場合、デフォルトは false
になります。
var builder = new MongoUrlBuilder { UseTls = true, };
タイムアウト オプション
ConnectTimeout
ドライバーがタイムアウトする前に、サーバーへの単一の TCP ソケット接続を確立しようとする時間の長さ。デフォルト値は 30 秒です。
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
SocketTimeout
ドライバーがタイムアウトする前にソケット上で送信または受信を試みる時間の長さ。デフォルト値はオペレーティング システムによって設定されます。
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
ConnectTimeout
ドライバーがタイムアウトする前に、サーバーへの単一の TCP ソケット接続を確立しようとする時間の長さ。デフォルト値は 30 秒です。
var builder = new MongoUrlBuilder { ConnectTimeout = TimeSpan.FromSeconds(60), };
SocketTimeout
ドライバーがタイムアウトする前にソケット上で送信または受信を試みる時間の長さ。デフォルト値はオペレーティング システムによって設定されます。
var builder = new MongoUrlBuilder { SocketTimeout = TimeSpan.FromSeconds(60), };
圧縮オプション
接続プール オプション
MaxConnecting
ドライバーの接続プールが同時に確立できる接続の最大数。デフォルト値は 2
です。
var settings = new MongoClientSettings { MaxConnecting = 3, };
MaxConnectionIdleTime
ドライバーが接続を閉じる前に接続がアイドル状態になる時間の長さ。デフォルト値は 10 分です。
var settings = new MongoClientSettings { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
期限が切れる前に接続をプールできる時間の長さ。デフォルト値は 30 分です。
var settings = new MongoClientSettings { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
MaxConnectionPoolSize
ドライバーが接続プール内に作成できるクライアントまたは接続の最大数。このカウント数には、使用中の接続が含まれています。デフォルト値は 100
です。
var settings = new MongoClientSettings { MaxConnectionPoolSize = 150, };
MinConnectionPoolSize
操作が行われていない場合でも、ドライバーが作成して接続プールに保持する接続の数。このカウント数には、使用中の接続が含まれています。デフォルト値は 0
です。
var settings = new MongoClientSettings { MinConnectionPoolSize = 3, };
WaitQueueTimeout
ドライバーがタイムアウトする前にサーバーの接続プールから接続をチェックアウトしようとする時間の長さ。デフォルト値は 2 分です。
var settings = new MongoClientSettings { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
MaxConnecting
ドライバーの接続プールが同時に確立できる接続の最大数。デフォルト値は 2
です。
var builder = new MongoUrlBuilder { MaxConnecting = 3, };
MaxConnectionIdleTime
ドライバーが接続を閉じる前に接続がアイドル状態になる時間の長さ。デフォルト値は 10 分です。
var builder = new MongoUrlBuilder { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
期限が切れる前に接続をプールできる時間の長さ。デフォルト値は 30 分です。
var builder = new MongoUrlBuilder { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
MaxConnectionPoolSize
ドライバーが接続プール内に作成できるクライアントまたは接続の最大数。このカウント数には、使用中の接続が含まれています。デフォルト値は 100
です。
var builder = new MongoUrlBuilder { MaxConnectionPoolSize = 150, };
MinConnectionPoolSize
操作が行われていない場合でも、ドライバーが作成して接続プールに保持する接続の数。このカウント数には、使用中の接続が含まれています。デフォルト値は 0
です。
var builder = new MongoUrlBuilder { MinConnectionPoolSize = 3, };
WaitQueueTimeout
ドライバーがタイムアウトする前にサーバーの接続プールから接続をチェックアウトしようとする時間の長さ。デフォルト値は 2 分です。
var builder = new MongoUrlBuilder { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
書込み保証(write concern)オプション
WriteConcern
クライアントのデフォルトの書込み保証 (write concern) 設定(書込み (write) タイムアウトやジャーナリングを含む)。デフォルト値は WriteConcern.Acknowledged
です。詳細については、 MongoDB Serverマニュアルの書込み保証を参照してください。
var settings = new MongoClientSettings(); settings.WriteConcern = MongoDB.Driver.WriteConcern.Acknowledged; settings.WriteConcern = new WriteConcern( w: 1, wTimeout: new TimeSpan(0, 0, 0, 30, 0), fsync: true, journal: true );
fsync
書込み保証 (write concern)の FSync コンポーネント。デフォルト値は false
です。fsync
コマンドの詳細については、 MongoDB Serverマニュアルのfsync を参照してください。
var builder = new MongoUrlBuilder { FSync = true };
Journal
書込み保証 (write concern)の j
コンポーネントは、 MongoDBインスタンスがオンディスクのジャーナルに書き込んだことの確認を要求します。デフォルト値は、writeConcernMajorityJournalDefault
設定の値によって異なります。j
オプションの詳細については、 MongoDB Serverマニュアルの「 書込み保証 」を参照してください。
var builder = new MongoUrlBuilder { Journal = true };
W
書込み保証 (write concern)の w
コンポーネント。指定された数のMongoDBインスタンスに書込み (write)操作が反映されたことの確認応答を要求します。デフォルト値は、アービタと投票ノードの数に応じて "majority"
または 1
です。w
オプションの詳細については、 MongoDB Serverマニュアルの書込み保証を参照してください。
var builder = new MongoUrlBuilder { W = 2 };
WTimeout
書込み保証 (write concern)の時間制限を指定する書込み保証 (write concern)の wtimeout
コンポーネント。wtimeout
オプションの詳細については、 MongoDB Serverマニュアルの書込み保証を参照してください。
var builder = new MongoUrlBuilder { WTimeout = TimeSpan.FromSeconds(5) };
readConcern オプション
ReadConcern
クライアントの読み取り保証 (read concern)。デフォルト値は ReadConcern.Default
です。詳細については、 MongoDB Serverマニュアルの読み取り保証を参照してください。
var settings = new MongoClientSettings { ReadConcern = MongoDB.Driver.ReadConcern.Local, };
readConcernLevel
クライアントの読み取り保証 (read concern)レベルデフォルト値は ReadConcern.Local
です。詳しくは、 「 読み取り保証 (read concern) 」を参照してください。
var builder = new MongoUrlBuilder { ReadConcernLevel = MongoDB.Driver.ReadConcernLevel.Local, };
設定オプションを読む
ReadPreference
クライアントのデフォルトの読み取り設定。MaxStaleness
は、セカンダリで発生してもサーバー選択の対象となる最長のレプリケーションラグ を、ウォール クロック時間で表します。デフォルト値は ReadPreference.Primary
です。-1
を指定すると、最大値はありません。詳細については、 MongoDB Serverマニュアルの読み込み設定を参照してください。
var settings = new MongoClientSettings { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
クライアントのデフォルトの読み取り設定。MaxStaleness
は、セカンダリで発生してもサーバー選択の対象となる最長のレプリケーションラグ を、ウォール クロック時間で表します。デフォルト値は ReadPreference.Primary
です。-1
を指定すると、最大値はありません。詳細については、 MongoDB Serverマニュアルの読み込み設定を参照してください。
var builder = new MongoUrlBuilder { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
認証オプション
Credentials
ドライバーがサーバーに対して認証する方法の設定。これには、認証情報、メカニズム、ソース、およびその他の設定が含まれます。デフォルト値は null
です。
認証メカニズムを指定しない 場合、ドライバーはサーバーのバージョンに応じて SCRAM-SHA-1
または SCRAM-SHA-256
のいずれかを使用します。使用可能な認証メカニズムについては、認証メカニズムを参照してください。
var settings = new MongoClientSettings { Credential = MongoCredential.CreatePlainCredential( databaseName: "admin", username: "user", password: "password" ) };
AuthenticationMechanism
ドライバーがMongoDB Serverへの認証に使用するメカニズム。認証メカニズムを指定しない 場合、ドライバーはサーバーのバージョンに応じて SCRAM-SHA-1
または SCRAM-SHA-256
のいずれかを使用します。使用可能な認証メカニズムについては、「認証メカニズム」を参照してください。
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
AuthenticationMechanismProperties
AuthenticationMechanism
プロパティで指定される認証メカニズムの構成設定。
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
認証ソース
クライアントを認証するためのソース。
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
パスワード
認証に使用するパスワード。
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
ユーザー名
認証に使用するユーザー名。
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
サーバーの選択と検出オプション
HeartbeatInterval
定期的なサーバー監視チェックの間隔。500 ミリ秒以上である必要があります。デフォルト値は 10000
ミリ秒(10 秒)です。
var settings = new MongoClientSettings { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
監視ソケットがタイムアウトするまでアイドル状態を維持できる時間の長さ。デフォルト値は ConnectTimeout
プロパティの値です。
var settings = new MongoClientSettings { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
LocalThreshold
サーバーの適格性のレイテンシウィンドウ。サーバーの往復時間が、最速のサーバーの往復時間とこの値よりも長い時間がかかる場合、そのサーバーは選択対象になりません。デフォルト値は 15 ミリ秒です。
var settings = new MongoClientSettings { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
サーバーの適格性のレイテンシウィンドウ。サーバーの往復時間が、最速のサーバーの往復時間とこの値よりも長い時間がかかる場合、そのサーバーは選択対象になりません。デフォルト値は 15 ミリ秒です。
var settings = new MongoClientSettings { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
HeartbeatInterval
定期的なサーバー監視チェックの間隔。500 ミリ秒以上である必要があります。デフォルト値は 10000
ミリ秒(10 秒)です。
var builder = new MongoUrlBuilder { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
監視ソケットがタイムアウトするまでアイドル状態を維持できる時間の長さ。デフォルト値は ConnectTimeout
プロパティの値です。
var builder = new MongoUrlBuilder { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
LocalThreshold
サーバーの適格性のレイテンシウィンドウ。サーバーの往復時間が、最速のサーバーの往復時間とこの値よりも長い時間がかかる場合、そのサーバーは選択対象になりません。デフォルト値は 15 ミリ秒です。
var builder = new MongoUrlBuilder { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
サーバーの適格性のレイテンシウィンドウ。サーバーの往復時間が、最速のサーバーの往復時間とこの値よりも長い時間がかかる場合、そのサーバーは選択対象になりません。デフォルト値は 15 ミリ秒です。
var builder = new MongoUrlBuilder { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
エンコード オプション
ReadEncoding
string のデシリアライズに使用する UTF-8 エンコーディング。デフォルト値は厳密なエンコーディングで、無効な UTF-8 バイト シーケンスが発生するとドライバーは例外をスローします
var settings = new MongoClientSettings { ReadEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
WriteEncoding
文字列の直列化に使用する UTF-8 エンコーディング。 デフォルト値は厳密なエンコーディングで、無効な UTF-8 バイト シーケンスが発生するとドライバーは例外をスローします
var settings = new MongoClientSettings { WriteEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
注意
MongoClientSettings Only
ReadEncoding
プロパティと WriteEncoding
プロパティは MongoClientSettings
クラスでのみ使用できます。
Stable API
ServerApi
安定したAPIバージョン管理を選択できるようになります。 デフォルト値は null
です。Stable API のバージョン管理の詳細については、 MongoDB Serverマニュアルの「Stable API」を参照してください。
var settings = new MongoClientSettings { ServerApi = new ServerApi( ServerApiVersion.V1, strict: true, deprecationErrors: true), };
注意
MongoClientSettings Only
ServerApi
プロパティはMongoClientSettings
クラスでのみ使用できます。
再試行オプション
その他のオプション
ApplicationName
接続ハンドシェイクの一環として、ドライバーがクライアントのメタデータでサーバーに渡すアプリ名。接続が確立されると、サーバーはこの値をMongoDBログに出力します。この値は、スロー クエリ ログとプロファイル コレクションにも記録されます。デフォルト値は null
です。
var settings = new MongoClientSettings { ApplicationName = "yourAppName", };
AutoEncryptionOptions
自動クライアント側暗号化の設定。デフォルト値は null
です。クライアント側の暗号化の詳細については、「 使用中の暗号化 」を参照してください。
var settings = new MongoClientSettings { AutoEncryptionOptions = new AutoEncryptionOptions( keyVaultNamespace: new CollectionNamespace( databaseName: "keyvault", collectionName: "datakeys"), kmsProviders: new Dictionary<string, IReadOnlyDictionary<string, object>> () { { "local", new Dictionary<string, object> () { { "key", "<base64-encoded-key>" } } } } ), };
ClusterConfigurator
ソケット、TLS、クラスターなどの低レベル構成オプション。 デフォルト値は null
です。
var settings = new MongoClientSettings { ClusterConfigurator = builder => { builder .Subscribe<ClusterOpenedEvent>(e => { Console.WriteLine($"Cluster opened: Cluster ID = {e.ClusterId}"); }) .Subscribe<ClusterDescriptionChangedEvent>(e => { Console.WriteLine($"Cluster description changed: {e.NewDescription}"); }); } };
IPv6
ホスト アドレスが IPv6形式であるかどうかを指定します。デフォルト値は false
です。
var settings = new MongoClientSettings { IPv6 = true, };
IsFrozen
設定が固定されているかどうかを示す読み取り専用オプション。固定された設定を変更することはできません。デフォルト値は false
です。
var settings = new MongoClientSettings(); if (!settings.IsFrozen) { settings.RetryReads = false; }
Tip
設定を固定する
MongoClientSettings
オブジェクトの 設定をフリーズするには、その freeze() メソッドを呼び出します。これにより、設定がそれ以上変更されなくなります。
あるいは、FrozenCopy() メソッドを呼び出して、現在の設定が固定された新しいMongoClientSettings
オブジェクトを作成することもできます。
NaturalInfo
.NET/ C#ドライバーに構築されたカスタム ライブラリの名前とバージョン。ドライバーはこの情報をサーバーに送信します。
var settings = new MongoClientSettings { LibraryInfo = new LibraryInfo("customLibraryName", "1.0.0") };
LoadBalanced
ドライバーが ロードバランサーに接続しているかどうかを指定します。このプロパティは、次の条件が すべて 満たされている場合にのみ、 true
に設定できます。
ホスト名を 1 つだけ指定
レプリカセットに接続していません。
SrvMaxHosts
プロパティを使用していませんDirectConnection
プロパティを使用していません
デフォルト値は false
です。
var settings = new MongoClientSettings { LoadBalanced = true, };
LoggingSettings
ログ記録に使用される設定。デフォルト値は null
です。
var settings = new MongoClientSettings { LoggingSettings = new LoggingSettings( LoggerFactory.Create(l => l.SetMinimumLevel(LogLevel.Debug))) };
スキーム
標準の接続文字列形式(MongoDB
)を使用するか、DNSシードリスト形式(MongoDBPlusSrv
)を使用するかを指定します。このプロパティで使用可能な値は、 ConnectionStringScheme列挙で定義されます。デフォルト値は です。接続文字列の形式の詳細については、ConnectionStringScheme.MongoDB
MongoDB Serverマニュアルの「接続文字列文字列 」を参照してください。
DirectConnection
プロパティが true
に設定されている場合に DNSシードリスト形式を使用しようとすると、 .NET/ C#ドライバーは例外をスローします。
var settings = new MongoClientSettings { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
サーバー
MongoDB が実行されているホストとポート番号。 デフォルト値は localhost:27017
です。
var settings = new MongoClientSettings { Server = new MongoServerAddress("localhost", 27017) };
ServerMonitoringMode
使用するサーバー監視プロトコルを指定します。このプロパティで使用可能な値は、 ServerMonitoringMode列挙で定義されます。デフォルト値は Auto
です。
このオプションを Auto
に設定すると、モニタリングモードはドライバーがを実行中環境によって決まります。ドライバーは、 Amazon Web Services Lambdaなどの function-as-a-service(FaaS)環境ではポーリングモードを使用し、他の環境ではストリーミングモードを使用します。
var settings = new MongoClientSettings { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
サーバー
MongoDB が実行されているクラスター ノード。 デフォルト値は localhost:27017
です。
var settings = new MongoClientSettings { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
SrvMaxHosts
シードリストを最初に設定するとき、または SRV ポーリング中にトポロジーに新しいホストを追加するときにランダムに選択する SRV 結果の最大数。デフォルト値は 0
です。
このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv
に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。
var settings = new MongoClientSettings { SrvMaxHosts = 5 };
SrvServiceName
ドライバーがシードリストを構築するために取得する SRVリソースレコードのサービス名。ドライバーは、サービス名を使用して、次の形式に一致する SRV URI を作成します。
_{srvServiceName}._tcp.{hostname}.{domainname}
このプロパティは、検出およびポーリングの SRV lookup のデフォルトのサービス名を上書きします。デフォルト値は "mongodb"
です。
このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv
に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。
var settings = new MongoClientSettings { SrvServiceName = "yourServiceName" };
翻訳オプション
LINQ クエリを クエリAPIに変換するためのMongoDB Serverバージョンなどのオプションを指定します。デフォルト値は null
です。
var settings = new MongoClientSettings { TranslationOptions = new ExpressionTranslationOptions() { CompatibilityLevel = ServerVersion.Server80, EnableClientSideProjections = true } };
ApplicationName
接続ハンドシェイクの一環として、ドライバーがクライアントのメタデータでサーバーに渡すアプリ名。接続が確立されると、サーバーはこの値をMongoDBログに出力します。この値は、スロー クエリ ログとプロファイル コレクションにも記録されます。デフォルト値は null
です。
var builder = new MongoUrlBuilder { ApplicationName = "yourAppName", };
DatabaseName
クライアントが接続するデータベースの名前。
var builder = new MongoUrlBuilder { DatabaseName = "test_database" };
IPv6
ホスト アドレスが IPv6形式であるかどうかを指定します。デフォルト値は false
です。
var builder = new MongoUrlBuilder { IPv6 = true, };
LoadBalanced
ドライバーが ロードバランサーに接続しているかどうかを指定します。このプロパティは、次の条件が すべて 満たされている場合にのみ、 true
に設定できます。
ホスト名を 1 つだけ指定
レプリカセットに接続していません。
SrvMaxHosts
プロパティを使用していませんDirectConnection
プロパティを使用していません
デフォルト値は false
です。
var builder = new MongoUrlBuilder { LoadBalanced = true, };
スキーム
標準の接続文字列形式(MongoDB
)を使用するか、DNSシードリスト形式(MongoDBPlusSrv
)を使用するかを指定します。このプロパティで使用可能な値は、 ConnectionStringScheme列挙で定義されます。デフォルト値は です。接続文字列の形式の詳細については、ConnectionStringScheme.MongoDB
MongoDB Serverマニュアルの「接続文字列文字列 」を参照してください。
DirectConnection
プロパティが true
に設定されている場合に DNSシードリスト形式を使用しようとすると、 .NET/ C#ドライバーは例外をスローします。
var builder = new MongoUrlBuilder { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
サーバー
MongoDB が実行されているホストとポート番号。 デフォルト値は localhost:27017
です。
var builder = new MongoUrlBuilder { Server = new MongoServerAddress("localhost", 27017) };
ServerMonitoringMode
使用するサーバー監視プロトコルを指定します。このプロパティで使用可能な値は、 ServerMonitoringMode列挙で定義されます。デフォルト値は Auto
です。
このオプションを Auto
に設定すると、モニタリングモードはドライバーがを実行中環境によって決まります。ドライバーは、 Amazon Web Services Lambdaなどの function-as-a-service(FaaS)環境ではポーリングモードを使用し、他の環境ではストリーミングモードを使用します。
var builder = new MongoUrlBuilder { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
サーバー
MongoDB が実行されているクラスター ノード。 デフォルト値は localhost:27017
です。
var builder = new MongoUrlBuilder { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
SrvMaxHosts
シードリストを最初に設定するとき、または SRV ポーリング中にトポロジーに新しいホストを追加するときにランダムに選択する SRV 結果の最大数。デフォルト値は 0
です。
このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv
に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。
var builder = new MongoUrlBuilder { SrvMaxHosts = 5 };
SrvServiceName
ドライバーがシードリストを構築するために取得する SRVリソースレコードのサービス名。ドライバーは、サービス名を使用して、次の形式に一致する SRV URI を作成します。
_{srvServiceName}._tcp.{hostname}.{domainname}
このプロパティは、検出およびポーリングの SRV lookup のデフォルトのサービス名を上書きします。デフォルト値は "mongodb"
です。
このプロパティは、接続文字列スキームが ConnectionStringScheme.MongoDBPlusSrv
に設定されている場合にのみ使用できます。レプリカセットに接続する場合は、 を使用できません。
var builder = new MongoUrlBuilder { SrvServiceName = "yourServiceName" };
詳細情報
このページで使用されているタイプの詳細については、次のAPIドキュメントを参照してください。