Overview
本页介绍了.NET/ C#驱动程序中可用的连接选项,并解释了如何应用MongoDB连接。
如何指定连接选项
以下部分介绍了指定连接选项的方法。
使用连接 URI
如果将连接 URI 传递给 MongoClient
构造函数,则可以将连接选项作为 <name>=<value>
对包含在string中。 在以下示例中,连接 URIconnectTimeoutMS
包含值为 的60000
选项和值为tls
的true
选项:
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
对象具有许多相同的优点,尽管这两个类包含不同的属性和方法。
要使用 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, };
TlsDisableCertificateRevocationCheck
是否在 TLS 握手期间禁用证书吊销检查。默认值为 false
。
var builder = new MongoUrlBuilder { TlsDisableCertificateRevocationCheck = true };
UseTls
指定是否需要 TLS 来连接到服务器。如果使用 "mongodb+srv"
模式或指定其他 TLS 选项,则此选项默认为 true
。否则,默认为 false
。
var builder = new MongoUrlBuilder { UseTls = true, };
超时选项
压缩选项
连接池选项
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
驾驶员在超时之前尝试从服务器的连接池检出连接的时间长度。默认值为两分钟。
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
驾驶员在超时之前尝试从服务器的连接池检出连接的时间长度。默认值为两分钟。
var builder = new MongoUrlBuilder { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
写关注选项
writeConcern
客户端的默认写关注设置,包括写入超时和日志。默认值为 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 };
日志
写关注(write concern)的 j
组件,请求确认MongoDB实例已写入磁盘上日志。默认值取决于 writeConcernMajorityJournalDefault
设置中的值。要学习;了解有关 j
选项的更多信息,请参阅MongoDB Server手册中的写关注。
var builder = new MongoUrlBuilder { Journal = true };
w
写关注(write concern)的 w
组件,请求确认写入操作已传播到指定数量的MongoDB实例。默认值为 "majority"
或 1
,具体取决于仲裁节点和投票节点的数量。要学习;了解有关 w
选项的更多信息,请参阅MongoDB Server手册中的写关注。
var builder = new MongoUrlBuilder { W = 2 };
wtimeout
写关注(write concern)的 wtimeout
组件,用于指定写关注(write concern)的时间限制。要学习;了解有关 wtimeout
选项的更多信息,请参阅MongoDB Server手册中的写关注。
var builder = new MongoUrlBuilder { WTimeout = TimeSpan.FromSeconds(5) };
读关注选项
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, };
读取偏好选项
身份验证选项
凭证
关于驾驶员如何向服务器进行身份验证的设置。这包括身份验证凭证、机制、来源和其他设置。默认值为 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
用于字符串反序列化的 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
ReadEncoding
和 WriteEncoding
属性仅在 MongoClientSettings
类中可用。
Stable API
ServerApi
允许选择 Stable API版本控制。默认值为 null
。有关 Stable API版本控制的更多信息,请参阅MongoDB Server手册中的 Stable API 。
var settings = new MongoClientSettings { ServerApi = new ServerApi( ServerApiVersion.V1, strict: true, deprecationErrors: true), };
注意
仅限 MongoClientSettings
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; }
提示
冻结设置
您可以通过调用 对象的MongoClientSettings
Freeze() 方法来冻结该对象的设置。这样可以防止对设置进行进一步更改。
或者,您可以调用 FrozenCopy() 方法来创建新的MongoClientSettings
对象,并冻结当前设置。
LibraryInfo
基于.NET/ C#驱动程序构建的自定义库的名称和版本。驾驶员将此信息发送到服务器。
var settings = new MongoClientSettings { LibraryInfo = new LibraryInfo("customLibraryName", "1.0.0") };
LoadBalanced
指定驾驶员是否正在连接到负载负载均衡器。仅当满足以下所有条件时,才能将此属性设立为 true
:
您仅指定一个托管名
您没有连接到副本集
您没有使用
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
时,监控模式由驾驶员运行的环境决定。驾驶员在函数即服务 (FaaS) 环境(例如Amazon Web Services Lambda )中使用轮询模式,在其他环境中使用流媒体模式。
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,该 URI 与以下格式匹配:
_{srvServiceName}._tcp.{hostname}.{domainname}
此属性会覆盖发现和轮询中 SRV 查找的默认服务名称。默认值为 "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
:
您仅指定一个托管名
您没有连接到副本集
您没有使用
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
时,监控模式由驾驶员运行的环境决定。驾驶员在函数即服务 (FaaS) 环境(例如Amazon Web Services Lambda )中使用轮询模式,在其他环境中使用流媒体模式。
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,该 URI 与以下格式匹配:
_{srvServiceName}._tcp.{hostname}.{domainname}
此属性会覆盖发现和轮询中 SRV 查找的默认服务名称。默认值为 "mongodb"
。
仅当连接字符串模式设立为 ConnectionStringScheme.MongoDBPlusSrv
时才能使用此属性。连接到副本集时无法使用它。
var builder = new MongoUrlBuilder { SrvServiceName = "yourServiceName" };
更多信息
有关此页面上使用的类型的更多信息,请参阅以下API文档: