Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/ / /
C#/ .NET驱动程序
/

指定连接选项

本页介绍了.NET/ C#驱动程序中可用的连接选项,并解释了如何应用MongoDB连接。

以下部分介绍了指定连接选项的方法。

如果将连接 URI 传递给 MongoClient 构造函数,则可以将连接选项作为 <name>=<value> 对包含在string中。 在以下示例中,连接 URIconnectTimeoutMS 包含值为 的60000 选项和值为tlstrue 选项:

const string uri = "mongodb+srv:/localhost:27017/?connectTimeoutMS=60000&tls=true";

要学习;了解有关可在连接 URI 中指定的选项的更多信息,请参阅MongoDB Server手册中的 连接字符串选项

您可以使用 MongoClientSettings 对象在代码中(而不是在连接 URI 中)配置连接设置。以这种方式配置连接可以更轻松地在运行时更改设置,帮助您在编译期间捕获错误,并提供比连接 URI 更多的配置选项。

要在 MongoClientSettings对象中设立连接选项,请执行以下步骤:

  1. 创建 MongoClientSettings 类的实例

  2. 在实例上设置属性以配置连接

  3. 将实例传递给 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对象在 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#驱动程序中可用的连接选项,以及如何使用 MongoClientSettingsMongoUrlBuilder对象指定这些选项。

指定是否强制将所有操作分派到托管。如果指定此选项,驾驶员将不接受DNS种子列表连接格式。 您必须改用标准连接 URI 格式。默认值为 false

如果指定多个托管名,则必须将此属性设立为 false

var settings = new MongoClientSettings
{
DirectConnection = true,
};

要连接的副本集的名称。 默认值为 null

var settings = new MongoClientSettings
{
ReplicaSetName = "yourReplicaSet",
};

指定是否强制将所有操作分派到托管。如果指定此选项,驾驶员将不接受DNS种子列表连接格式。 您必须改用标准连接 URI 格式。默认值为 false

如果指定多个托管名,则必须将此属性设立为 false

var builder = new MongoUrlBuilder
{
DirectConnection = true,
};

要连接的副本集的名称。 默认值为 null

var builder = new MongoUrlBuilder
{
ReplicaSetName = "yourReplicaSet",
};

指定是否尽可能放宽 TLS 约束。这可能包括允许无效证书或主机名不匹配。默认值为 false

如果将此属性设立为 true 并将 SslSettings.CheckCertificateRevocation设立为 false,则.NET/ C#驱动程序将引发异常。

以下代码示例展示了如何将此选项设立为 true

var settings = new MongoClientSettings
{
AllowInsecureTls = true,
};

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() { ... }
};

指定是否需要 TLS 来连接到服务器。如果使用 "mongodb+srv" 模式或指定其他 TLS 选项,则此选项默认为 true。否则,默认为 false

var settings = new MongoClientSettings
{
UseTls = true,
};

指定是否尽可能放宽 TLS 约束。这可能包括允许无效证书或主机名不匹配。默认值为 false

如果将此属性设立为 true 并将 SslSettings.CheckCertificateRevocation设立为 false,则.NET/ C#驱动程序将引发异常。

以下代码示例展示了如何将此选项设立为 true

var builder = new MongoUrlBuilder
{
AllowInsecureTls = true,
};

是否在 TLS 握手期间禁用证书吊销检查。默认值为 false

var builder = new MongoUrlBuilder
{
TlsDisableCertificateRevocationCheck = true
};

指定是否需要 TLS 来连接到服务器。如果使用 "mongodb+srv" 模式或指定其他 TLS 选项,则此选项默认为 true。否则,默认为 false

var builder = new MongoUrlBuilder
{
UseTls = true,
};

驾驶员在超时之前尝试与服务器建立单个 TCP 套接字连接的时间长度。默认值为 30 秒。

var settings = new MongoClientSettings
{
ConnectTimeout = TimeSpan.FromSeconds(60),
};

驾驶员在超时之前尝试在套接字上发送或接收的时间长度。默认值由操作系统设立。

var settings = new MongoClientSettings
{
ConnectTimeout = TimeSpan.FromSeconds(60),
};

驾驶员在超时之前尝试与服务器建立单个 TCP 套接字连接的时间长度。默认值为 30 秒。

var builder = new MongoUrlBuilder
{
ConnectTimeout = TimeSpan.FromSeconds(60),
};

驾驶员在超时之前尝试在套接字上发送或接收的时间长度。默认值由操作系统设立。

var builder = new MongoUrlBuilder
{
SocketTimeout = TimeSpan.FromSeconds(60),
};

按顺序排列的首选压缩类型,适用于发送到服务器接收的线协议消息。驾驶员使用服务器支持的第一种压缩类型。默认值为 null

var settings = new MongoClientSettings
{
Compressors = new List<CompressorConfiguration>()
{
new(CompressorType.Zlib),
new(CompressorType.Snappy)
}
};

按顺序排列的首选压缩类型,适用于发送到服务器接收的线协议消息。驾驶员使用服务器支持的第一种压缩类型。默认值为 null

var builder = new MongoUrlBuilder
{
Compressors = new List<CompressorConfiguration>()
{
new(CompressorType.Zlib),
new(CompressorType.Snappy)
}
};

驱动程序的连接池可以同时建立的最大连接数。默认值为 2

var settings = new MongoClientSettings
{
MaxConnecting = 3,
};

在驾驶员关闭连接之前,该连接可以处于空闲状态的时间长度。默认值为 10 分钟。

var settings = new MongoClientSettings
{
MaxConnectionIdleTime = TimeSpan.FromMinutes(8),
};

连接在过期之前可以进入池化的时间长度。默认值为 30 分钟。

var settings = new MongoClientSettings
{
MaxConnectionLifeTime = TimeSpan.FromMinutes(40),
};

驾驶员可以在其连接池创建的最大客户端或连接数。此计数包括正在使用的连接。默认值为 100

var settings = new MongoClientSettings
{
MaxConnectionPoolSize = 150,
};

即使没有进行操作时,驾驶员也会在连接池创建并保留的连接数。此计数包括正在使用的连接。默认值为 0

var settings = new MongoClientSettings
{
MinConnectionPoolSize = 3,
};

驾驶员在超时之前尝试从服务器的连接池检出连接的时间长度。默认值为两分钟。

var settings = new MongoClientSettings
{
WaitQueueTimeout = TimeSpan.FromSeconds(30),
};

驱动程序的连接池可以同时建立的最大连接数。默认值为 2

var builder = new MongoUrlBuilder
{
MaxConnecting = 3,
};

在驾驶员关闭连接之前,该连接可以处于空闲状态的时间长度。默认值为 10 分钟。

var builder = new MongoUrlBuilder
{
MaxConnectionIdleTime = TimeSpan.FromMinutes(8),
};

连接在过期之前可以进入池化的时间长度。默认值为 30 分钟。

var builder = new MongoUrlBuilder
{
MaxConnectionLifeTime = TimeSpan.FromMinutes(40),
};

驾驶员可以在其连接池创建的最大客户端或连接数。此计数包括正在使用的连接。默认值为 100

var builder = new MongoUrlBuilder
{
MaxConnectionPoolSize = 150,
};

即使没有进行操作时,驾驶员也会在连接池创建并保留的连接数。此计数包括正在使用的连接。默认值为 0

var builder = new MongoUrlBuilder
{
MinConnectionPoolSize = 3,
};

驾驶员在超时之前尝试从服务器的连接池检出连接的时间长度。默认值为两分钟。

var builder = new MongoUrlBuilder
{
WaitQueueTimeout = TimeSpan.FromSeconds(30),
};

客户端的默认写关注设置,包括写入超时和日志。默认值为 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
);

写关注(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
};

写关注(write concern)的 w 组件,请求确认写入操作已传播到指定数量的MongoDB实例。默认值为 "majority"1,具体取决于仲裁节点和投票节点的数量。要学习;了解有关 w 选项的更多信息,请参阅MongoDB Server手册中的写关注

var builder = new MongoUrlBuilder
{
W = 2
};

写关注(write concern)的 wtimeout 组件,用于指定写关注(write concern)的时间限制。要学习;了解有关 wtimeout 选项的更多信息,请参阅MongoDB Server手册中的写关注

var builder = new MongoUrlBuilder
{
WTimeout = TimeSpan.FromSeconds(5)
};

客户端的读关注(read concern)。默认值为 ReadConcern.Default。有关更多信息,请参阅MongoDB Server手册中的读关注

var settings = new MongoClientSettings
{
ReadConcern = MongoDB.Driver.ReadConcern.Local,
};

客户端的读关注(read concern)级别。默认值为 ReadConcern.Local。有关更多信息,请参阅读关注(read concern)。

var builder = new MongoUrlBuilder
{
ReadConcernLevel = MongoDB.Driver.ReadConcernLevel.Local,
};

客户端的默认读取偏好设置。MaxStaleness 表示从节点(secondary node from replica set)可能出现但仍有资格进行服务器选择的最长复制延迟(以挂钟时间为单位)。默认值为 ReadPreference.Primary。指定 -1 意味着没有最大值。有关更多信息,请参阅MongoDB Server手册中的读取偏好。

var settings = new MongoClientSettings
{
ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred,
};

客户端的默认读取偏好设置。MaxStaleness 表示从节点(secondary node from replica set)可能出现但仍有资格进行服务器选择的最长复制延迟(以挂钟时间为单位)。默认值为 ReadPreference.Primary。指定 -1 意味着没有最大值。有关更多信息,请参阅MongoDB Server手册中的读取偏好。

var builder = new MongoUrlBuilder
{
ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred,
};

关于驾驶员如何向服务器进行身份验证的设置。这包括身份验证凭证、机制、来源和其他设置。默认值为 null

如果不指定身份验证机制,驾驶员将使用 SCRAM-SHA-1SCRAM-SHA-256,具体取决于服务器版本。有关可用的身份验证机制,请参阅 身份验证机制

var settings = new MongoClientSettings
{
Credential = MongoCredential.CreatePlainCredential(
databaseName: "admin",
username: "user",
password: "password"
)
};

驾驶员用于向MongoDB Server进行身份验证的机制。如果不指定身份验证机制,驾驶员将使用 SCRAM-SHA-1SCRAM-SHA-256,具体取决于服务器版本。有关可用的身份验证机制,请参阅身份验证机制

var builder = new MongoUrlBuilder
{
AuthenticationMechanism = "GSSAPI",
AuthenticationMechanismProperties = new Dictionary<string, string>
{
{ "SERVICE_NAME", "other" },
{ "CANONICALIZE_HOST_NAME", "true" }
},
AuthenticationSource = "db"
};

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"
};

定期服务器监控检查之间的时间间隔。必须大于或等于 500 毫秒。默认值为 10000 毫秒(10 秒)。

var settings = new MongoClientSettings
{
HeartbeatInterval = TimeSpan.FromSeconds(5)
};

监控套接字在超时之前可以处于空闲状态的时间长度。默认值为 ConnectTimeout属性的值。

var settings = new MongoClientSettings
{
HeartbeatTimeout = TimeSpan.FromSeconds(5)
};

服务器资格的延迟窗口。如果服务器的往返时间超过最快服务器的往返时间加上此值,则该服务器没有资格被选中。默认值为 15 毫秒。

var settings = new MongoClientSettings
{
LocalThreshold = TimeSpan.FromSeconds(15)
};

服务器资格的延迟窗口。如果服务器的往返时间超过最快服务器的往返时间加上此值,则该服务器没有资格被选中。默认值为 15 毫秒。

var settings = new MongoClientSettings
{
ServerSelectionTimeout = TimeSpan.FromSeconds(30)
};

定期服务器监控检查之间的时间间隔。必须大于或等于 500 毫秒。默认值为 10000 毫秒(10 秒)。

var builder = new MongoUrlBuilder
{
HeartbeatInterval = TimeSpan.FromSeconds(5)
};

监控套接字在超时之前可以处于空闲状态的时间长度。默认值为 ConnectTimeout属性的值。

var builder = new MongoUrlBuilder
{
HeartbeatTimeout = TimeSpan.FromSeconds(5)
};

服务器资格的延迟窗口。如果服务器的往返时间超过最快服务器的往返时间加上此值,则该服务器没有资格被选中。默认值为 15 毫秒。

var builder = new MongoUrlBuilder
{
LocalThreshold = TimeSpan.FromSeconds(15)
};

服务器资格的延迟窗口。如果服务器的往返时间超过最快服务器的往返时间加上此值,则该服务器没有资格被选中。默认值为 15 毫秒。

var builder = new MongoUrlBuilder
{
ServerSelectionTimeout = TimeSpan.FromSeconds(30)
};

用于字符串反序列化的 UTF-8 编码。 默认值为严格编码,即驾驶员在遇到无效的 UTF-8 字节序列时会引发异常

var settings = new MongoClientSettings
{
ReadEncoding = new UTF8Encoding(
encoderShouldEmitUTF8Identifier: false,
throwOnInvalidBytes: true)
};

用于字符串序列化的 UTF-8 编码。 默认值为严格编码,即驾驶员在遇到无效的 UTF-8 字节序列时会引发异常

var settings = new MongoClientSettings
{
WriteEncoding = new UTF8Encoding(
encoderShouldEmitUTF8Identifier: false,
throwOnInvalidBytes: true)
};

注意

仅限 MongoClientSettings

ReadEncodingWriteEncoding 属性仅在 MongoClientSettings 类中可用。

允许选择 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 类中可用。

允许重试读取。 默认值为 true

var settings = new MongoClientSettings
{
RetryReads = false,
};

启用可重试写入。 默认值为 true

var settings = new MongoClientSettings
{
RetryWrites = false,
};

允许重试读取。 默认值为 true

var builder = new MongoUrlBuilder
{
RetryReads = false,
};

启用可重试写入。 默认值为 true

var builder = new MongoUrlBuilder
{
RetryWrites = false,
};

作为连接握手的一部分,驾驶员在客户端元数据中传递给服务器的应用名称。建立连接后,服务器会将此值打印到MongoDB日志。该值还会记录在慢速查询日志和配置文件集合中。默认值为 null

var settings = new MongoClientSettings
{
ApplicationName = "yourAppName",
};

客户端自动加密的设置。默认值为 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>" } } }
}
),
};

套接字、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 格式。默认值为 false

var settings = new MongoClientSettings
{
IPv6 = true,
};

指示设置是否已冻结的只读选项。您无法更改冻结设置。默认值为 false

var settings = new MongoClientSettings();
if (!settings.IsFrozen)
{
settings.RetryReads = false;
}

提示

冻结设置

您可以通过调用 对象的MongoClientSettings Freeze() 方法来冻结该对象的设置。这样可以防止对设置进行进一步更改。

或者,您可以调用 FrozenCopy() 方法来创建新的MongoClientSettings 对象,并冻结当前设置。

基于.NET/ C#驱动程序构建的自定义库的名称和版本。驾驶员将此信息发送到服务器。

var settings = new MongoClientSettings
{
LibraryInfo = new LibraryInfo("customLibraryName", "1.0.0")
};

指定驾驶员是否正在连接到负载负载均衡器。仅当满足以下所有条件时,才能将此属性设立为 true

  • 您仅指定一个托管名

  • 您没有连接到副本集

  • 您没有使用 SrvMaxHosts属性

  • 您没有使用 DirectConnection属性

默认值为 false

var settings = new MongoClientSettings
{
LoadBalanced = true,
};

用于日志记录的设置。 默认值为 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枚举中定义。默认值为 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)
}
};

最初填充种子列表或在 SRV 轮询期间向拓扑结构添加新主机时,要随机选择的 SRV 结果的最大数量。默认值为 0

仅当连接字符串模式设立为 ConnectionStringScheme.MongoDBPlusSrv 时才能使用此属性。连接到副本集时无法使用它。

var settings = new MongoClientSettings
{
SrvMaxHosts = 5
};

驾驶员检索以构造种子列表的 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
}
};

作为连接握手的一部分,驾驶员在客户端元数据中传递给服务器的应用名称。建立连接后,服务器会将此值打印到MongoDB日志。该值还会记录在慢速查询日志和配置文件集合中。默认值为 null

var builder = new MongoUrlBuilder
{
ApplicationName = "yourAppName",
};

客户端连接到的数据库的名称。

var builder = new MongoUrlBuilder
{
DatabaseName = "test_database"
};

指定托管解决是否采用 IPv6 格式。默认值为 false

var builder = new MongoUrlBuilder
{
IPv6 = true,
};

指定驾驶员是否正在连接到负载负载均衡器。仅当满足以下所有条件时,才能将此属性设立为 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枚举中定义。默认值为 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)
}
};

最初填充种子列表或在 SRV 轮询期间向拓扑结构添加新主机时,要随机选择的 SRV 结果的最大数量。默认值为 0

仅当连接字符串模式设立为 ConnectionStringScheme.MongoDBPlusSrv 时才能使用此属性。连接到副本集时无法使用它。

var builder = new MongoUrlBuilder
{
SrvMaxHosts = 5
};

驾驶员检索以构造种子列表的 SRV资源记录的服务名称。驾驶员使用服务名称创建 SRV URI,该 URI 与以下格式匹配:

_{srvServiceName}._tcp.{hostname}.{domainname}

此属性会覆盖发现和轮询中 SRV 查找的默认服务名称。默认值为 "mongodb"

仅当连接字符串模式设立为 ConnectionStringScheme.MongoDBPlusSrv 时才能使用此属性。连接到副本集时无法使用它。

var builder = new MongoUrlBuilder
{
SrvServiceName = "yourServiceName"
};

有关此页面上使用的类型的更多信息,请参阅以下API文档:

后退

选择连接目标

在此页面上