Overview
Esta página describe las opciones de conexión disponibles en el controlador .NET/C# y explica cómo aplicarlas a su conexión MongoDB.
Cómo especificar las opciones de conexión
Las siguientes secciones describen las formas en las que puedes especificar las opciones de conexión.
Uso del URI de conexión
Si pasas un URI de conexión a la MongoClient constructor, puede incluir opciones de conexión en la string como pares <name>=<value>. En el siguiente ejemplo, el URI de conexión contiene la opción connectTimeoutMS con un valor de 60000 y la opción tls con un valor de true:
const string uri = "mongodb+srv:/localhost:27017/?connectTimeoutMS=60000&tls=true";
Para aprender más sobre las opciones que puedes especificar en un URI de conexión, consulta Opciones de cadena de conexión en el manual del servidor MongoDB.
Uso de MongoClientSettings
Puedes usar un objeto MongoClientSettings para configurar la conexión en el código en lugar de en una URI de conexión. Configurar la conexión de esta manera facilita cambiar la configuración en tiempo de ejecución, ayuda a detectar errores durante la compilación y proporciona más opciones de configuración que la URI de conexión.
Para establecer opciones de conexión en un objeto MongoClientSettings, realiza los siguientes pasos:
Crea una instancia de la clase
MongoClientSettingsEstablezca propiedades en la instancia para configurar la conexión
Pase la instancia al constructor
MongoClient
El siguiente ejemplo de código muestra cómo realizar los pasos anteriores:
var settings = new MongoClientSettings() { Scheme = ConnectionStringScheme.MongoDBPlusSrv, Server = new MongoServerAddress("localhost", 27017), ConnectTimeout = TimeSpan.FromMilliseconds(60000), UseTls = true }; var client = new MongoClient(settings);
También puedes crear un objeto MongoClientSettings a partir de una cadena de conexión llamando al método MongoClientSettings.FromConnectionString() y pasando la cadena de conexión, como se muestra en el siguiente ejemplo. Esto es útil si ya tienes una cadena de conexión pero deseas modificar algunas configuraciones de manera programática o si debes especificar configuraciones que no están disponibles en la cadena de conexión.
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);
Alternativamente, puedes crear un objeto MongoClientSettings a partir de un objeto MongoUrl llamando al método MongoClientSettings.FromUrl() y pasando el objeto MongoUrl, como se muestra en el siguiente ejemplo. Esto es útil si ya tienes un objeto MongoUrl pero deseas especificar configuraciones que no están disponibles en la clase 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);
Uso de MongoUrlBuilder
Puede utilizar un objeto MongoUrlBuilder para crear y configurar parámetros de conexión de un objeto MongoUrl. Un(a) MongoUrl es una representación fuertemente tipada de un URI de conexión, y es útil cuando se lee un URI de conexión directamente de otra fuente. Utilizar un objeto MongoUrl tiene muchas de las mismas ventajas que utilizar un objeto MongoClientSettings, aunque ambas clases contienen propiedades y métodos diferentes.
Para usar un objeto MongoUrlBuilder, cree una instancia de la clase y configure las propiedades necesarias. Para crear un objeto MongoUrl a partir de MongoUrlBuilder, llame al método MongoUrlBuilder.ToMongoUrl(). Puede pasar el objeto MongoUrl al constructor MongoClient. El siguiente ejemplo de código muestra este proceso:
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);
Opciones de conexión
Las siguientes secciones describen las opciones de conexión disponibles en el controlador .NET/C# y cómo especificarlas mediante un objeto MongoClientSettings o MongoUrlBuilder.
Opciones de set de réplicas
directConnection
Especifica si se debe forzar el envío de todas las operaciones al host. Si se especifica esta opción, el driver no acepta el formato de conexión de lista de nodos iniciales de DNS . En su lugar, se debe utilizar el formato URI de conexión estándar. El valor por defecto es false.
Esta propiedad debe establecerse en false si se especifica más de un nombre de host.
var settings = new MongoClientSettings { DirectConnection = true, };
Nombre del conjunto de réplicas
El nombre del set de réplicas al que se desea conectar. El valor por defecto es null.
var settings = new MongoClientSettings { ReplicaSetName = "yourReplicaSet", };
directConnection
Especifica si se debe forzar el envío de todas las operaciones al host. Si se especifica esta opción, el driver no acepta el formato de conexión de lista de nodos iniciales de DNS . En su lugar, se debe utilizar el formato URI de conexión estándar. El valor por defecto es false.
Esta propiedad debe establecerse en false si se especifica más de un nombre de host.
var builder = new MongoUrlBuilder { DirectConnection = true, };
Nombre del conjunto de réplicas
El nombre del set de réplicas al que se desea conectar. El valor por defecto es null.
var builder = new MongoUrlBuilder { ReplicaSetName = "yourReplicaSet", };
Opciones de TLS
PermitirTlsInseguro
Especifica si se deben relajar las restricciones de TLS tanto como sea posible. Esto puede incluir permitir certificados no válidos o discrepancias de nombres de host. El valor por defecto es false.
Si esta propiedad se establece en true y SslSettings.CheckCertificateRevocation se establece en false, el controlador .NET/ C# lanzará una excepción.
El siguiente ejemplo de código muestra cómo establecer esta opción en true:
var settings = new MongoClientSettings { AllowInsecureTls = true, };
SslSettings
Opciones de TLS/SSL, incluyendo certificados de cliente, gestión de revocaciones y protocolos TLS/SSL habilitados y deshabilitados. El valor predeterminado es null.
Si SslSettings.CheckCertificateRevocation se establece en false y AllowInsecureTls se establece en true, el controlador .NET/C# lanza una excepción.
var settings = new MongoClientSettings(); settings.SslSettings = new SslSettings() { CheckCertificateRevocation = false, ClientCertificateSelectionCallback = new LocalCertificateSelectionCallback() { ... }, ClientCertificates = new List<X509Certificate>() { ... }, EnabledSslProtocols = SslProtocols.Tls13, ServerCertificateValidationCallback = new RemoteCertificateValidationCallback() { ... } };
UsarTls
Especifica si se debe requerir TLS para las conexiones al servidor. Si usas un esquema de "mongodb+srv" o especificas otras opciones de TLS, esta opción será por defecto true. En caso contrario, el valor será por defecto false.
var settings = new MongoClientSettings { UseTls = true, };
PermitirTlsInseguro
Especifica si se deben relajar las restricciones de TLS tanto como sea posible. Esto puede incluir permitir certificados no válidos o discrepancias de nombres de host. El valor por defecto es false.
Si esta propiedad se establece en true y SslSettings.CheckCertificateRevocation se establece en false, el controlador .NET/ C# lanzará una excepción.
El siguiente ejemplo de código muestra cómo establecer esta opción en true:
var builder = new MongoUrlBuilder { AllowInsecureTls = true, };
TlsDisableCertificateRevocationCheck
Si se debe deshabilitar la comprobación de revocación de certificados durante el apretón de manos TLS. El valor por defecto es false.
var builder = new MongoUrlBuilder { TlsDisableCertificateRevocationCheck = true };
UsarTls
Especifica si se debe requerir TLS para las conexiones al servidor. Si usas un esquema de "mongodb+srv" o especificas otras opciones de TLS, esta opción será por defecto true. En caso contrario, el valor será por defecto false.
var builder = new MongoUrlBuilder { UseTls = true, };
Opciones de tiempo de espera
Tiempo de espera de conexión
El tiempo que el controlador tarda en establecer una conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor predeterminado es 30 segundos.
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
Tiempo de espera del socket
El tiempo que el controlador intenta enviar o recibir datos en un socket antes de agotar el tiempo de espera. El valor predeterminado lo establece el sistema operativo.
var settings = new MongoClientSettings { ConnectTimeout = TimeSpan.FromSeconds(60), };
Tiempo de espera de conexión
El tiempo que el controlador tarda en establecer una conexión de socket TCP con el servidor antes de agotar el tiempo de espera. El valor predeterminado es 30 segundos.
var builder = new MongoUrlBuilder { ConnectTimeout = TimeSpan.FromSeconds(60), };
Tiempo de espera del socket
El tiempo que el controlador intenta enviar o recibir datos en un socket antes de agotar el tiempo de espera. El valor predeterminado lo establece el sistema operativo.
var builder = new MongoUrlBuilder { SocketTimeout = TimeSpan.FromSeconds(60), };
Opciones de compresión
Compresores
Los tipos de compresión preferidos, en orden, para los mensajes de protocolo de conexión enviados al servidor o recibidos de él. El controlador usa la primera de estos tipos de compresión que el servidor admite. El valor por defecto es null.
var settings = new MongoClientSettings { Compressors = new List<CompressorConfiguration>() { new(CompressorType.Zlib), new(CompressorType.Snappy) } };
Compresores
Los tipos de compresión preferidos, en orden, para los mensajes de protocolo de conexión enviados al servidor o recibidos de él. El controlador usa la primera de estos tipos de compresión que el servidor admite. El valor por defecto es null.
var builder = new MongoUrlBuilder { Compressors = new List<CompressorConfiguration>() { new(CompressorType.Zlib), new(CompressorType.Snappy) } };
Opciones del pool de conexiones
MaxConnecting
El máximo número de conexiones que el grupo de conexiones de un controlador puede establecer simultáneamente. El valor predeterminado es 2.
var settings = new MongoClientSettings { MaxConnecting = 3, };
Tiempo máximo de inactividad de la conexión
El tiempo que una conexión puede estar inactiva antes de que el driver la cierre. El valor por defecto es 10 minutos.
var settings = new MongoClientSettings { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
El tiempo que una conexión puede mantener en el pool antes de expirar. El valor por defecto es 30 minutos.
var settings = new MongoClientSettings { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
MaxConnectionPoolSize
El mayor número de clientes o conexiones que el controlador puede crear en su pool de conexiones. Este recuento incluye las conexiones en uso. El valor por defecto es 100.
var settings = new MongoClientSettings { MaxConnectionPoolSize = 150, };
MinConnectionPoolSize
El número de conexiones que el driver crea y mantiene en el pool de conexiones incluso cuando no se están realizando operaciones. Este recuento incluye las conexiones en uso. El valor por defecto es 0.
var settings = new MongoClientSettings { MinConnectionPoolSize = 3, };
WaitQueueTimeout
El tiempo que el driver intenta comprobar una conexión del pool de conexiones de un servidor antes de que se agote el tiempo de espera. El valor por defecto es dos minutos.
var settings = new MongoClientSettings { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
MaxConnecting
El máximo número de conexiones que el grupo de conexiones de un controlador puede establecer simultáneamente. El valor predeterminado es 2.
var builder = new MongoUrlBuilder { MaxConnecting = 3, };
Tiempo máximo de inactividad de la conexión
El tiempo que una conexión puede estar inactiva antes de que el driver la cierre. El valor por defecto es 10 minutos.
var builder = new MongoUrlBuilder { MaxConnectionIdleTime = TimeSpan.FromMinutes(8), };
MaxConnectionLifeTime
El tiempo que una conexión puede mantener en el pool antes de expirar. El valor por defecto es 30 minutos.
var builder = new MongoUrlBuilder { MaxConnectionLifeTime = TimeSpan.FromMinutes(40), };
MaxConnectionPoolSize
El mayor número de clientes o conexiones que el controlador puede crear en su pool de conexiones. Este recuento incluye las conexiones en uso. El valor por defecto es 100.
var builder = new MongoUrlBuilder { MaxConnectionPoolSize = 150, };
MinConnectionPoolSize
El número de conexiones que el driver crea y mantiene en el pool de conexiones incluso cuando no se están realizando operaciones. Este recuento incluye las conexiones en uso. El valor por defecto es 0.
var builder = new MongoUrlBuilder { MinConnectionPoolSize = 3, };
WaitQueueTimeout
El tiempo que el driver intenta comprobar una conexión del pool de conexiones de un servidor antes de que se agote el tiempo de espera. El valor por defecto es dos minutos.
var builder = new MongoUrlBuilder { WaitQueueTimeout = TimeSpan.FromSeconds(30), };
Opciones de nivel de confirmación de escritura
Nivel de confirmación de escritura (write concern)
La configuración por defecto de nivel de confirmación de escritura (write concern), incluida la caducidad de escritura y registrar en la bitácora, para el cliente. El valor por defecto es WriteConcern.Acknowledged. Consulta nivel de confirmación de escritura (write concern) en el manual del MongoDB Server para obtener más información.
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
El componente FSync de la operación de escritura. El valor predeterminado false es. Para obtener más información sobre el fsync comando, consulte fsync en el manual del servidor MongoDB.
var builder = new MongoUrlBuilder { FSync = true };
Journal
El componente j del nivel de confirmación de escritura (write concern), que solicita el reconocimiento de que las instancias de MongoDB han escrito en el diario en disco. El valor por defecto depende del valor de la configuración writeConcernMajorityJournalDefault. Para aprender más sobre la opción j, consulta Write Concern en el manual del servidor de MongoDB.
var builder = new MongoUrlBuilder { Journal = true };
W
El componente w del nivel de confirmación de escritura (write concern), que solicita el reconocimiento de que la operación de escritura se ha propagado a un número especificado de instancias de MongoDB. El valor por defecto es "majority" o 1, dependiendo del número de árbitros y nodos de votación. Para obtener más información sobre la opción w, consulta nivel de confirmación de escritura (write concern) en el manual de MongoDB Server.
var builder = new MongoUrlBuilder { W = 2 };
WTimeout
El wtimeout componente de la solicitud de escritura, que especifica un límite de tiempo para dicha solicitud. Para obtener más información sobre la wtimeout opción, consulte "Solicitud de escritura" en el manual de MongoDB Server.
var builder = new MongoUrlBuilder { WTimeout = TimeSpan.FromSeconds(5) };
Opciones de readConcern
readConcern
La preocupación de lectura del cliente. El valor predeterminado ReadConcern.Default es. Para más información, consulte la preocupación de lectura en el manual de MongoDB Server.
var settings = new MongoClientSettings { ReadConcern = MongoDB.Driver.ReadConcern.Local, };
readConcernLevel
Nivel de preocupación de lectura del cliente. El valor predeterminado ReadConcern.Local es. Para más información, consulte la preocupación de lectura.
var builder = new MongoUrlBuilder { ReadConcernLevel = MongoDB.Driver.ReadConcernLevel.Local, };
Opciones de preferencia de lectura
preferencia de lectura
La configuración por defecto de la preferencia de lectura del cliente. MaxStaleness representa el atraso de la replicación más largo, en tiempo de reloj real, que un secundario puede experimentar y aún ser elegible para la selección del servidor. El valor por defecto es ReadPreference.Primary. Especificar -1 significa que no hay máximo. Consulta Preferencia de lectura en el Manual del servidor MongoDB para obtener más información.
var settings = new MongoClientSettings { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
La configuración por defecto de la preferencia de lectura del cliente. MaxStaleness representa el atraso de la replicación más largo, en tiempo de reloj real, que un secundario puede experimentar y aún ser elegible para la selección del servidor. El valor por defecto es ReadPreference.Primary. Especificar -1 significa que no hay máximo. Consulta Preferencia de lectura en el Manual del servidor MongoDB para obtener más información.
var builder = new MongoUrlBuilder { ReadPreference = MongoDB.Driver.ReadPreference.PrimaryPreferred, };
Opciones de autenticación
Credencial
Configuraciones para cómo el driver se autentica en el servidor. Esto incluye credenciales de autenticación, mecanismos, fuentes y otras configuraciones. El valor por defecto es null.
Si no especificas un mecanismo de autenticación, el controlador usa SCRAM-SHA-1 o SCRAM-SHA-256, dependiendo de la versión del servidor. Ver
Mecanismos de autenticación para los mecanismos de autenticación disponibles.
var settings = new MongoClientSettings { Credential = MongoCredential.CreatePlainCredential( databaseName: "admin", username: "user", password: "password" ) };
Mecanismo de autenticación
El mecanismo que el controlador utiliza para autenticarse en MongoDB Server. Si no se especifica un mecanismo de autenticación, el controlador usará SCRAM-SHA-1 o SCRAM-SHA-256, dependiendo de la versión del servidor. Consulta mecanismos de autenticación para los mecanismos de autenticación disponibles.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Propiedades del mecanismo de autenticación
Configuración del mecanismo de autenticación especificado en la propiedad AuthenticationMechanism.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
AuthenticationSource
La fuente para autenticar al cliente.
var builder = new MongoUrlBuilder { AuthenticationMechanism = "GSSAPI", AuthenticationMechanismProperties = new Dictionary<string, string> { { "SERVICE_NAME", "other" }, { "CANONICALIZE_HOST_NAME", "true" } }, AuthenticationSource = "db" };
Contraseña
La contraseña que se debe utilizar para la autenticación.
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
Nombre de usuario
El nombre de usuario a utilizar para autenticación.
var builder = new MongoUrlBuilder { Username = "user", Password = "password" };
Opciones de selección y descubrimiento de servidores
IntervaloDeLatidos
El intervalo entre las comprobaciones periódicas de supervisión del servidor. Debe ser mayor o igual a 500 milisegundos. El valor por defecto es 10000 milisegundos (10 segundos).
var settings = new MongoClientSettings { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
El tiempo que un socket de monitorización puede estar inactivo antes de caducar. El valor predeterminado es el valor de la propiedad ConnectTimeout.
var settings = new MongoClientSettings { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
Umbral local
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de viaje de ida y vuelta de un servidor es más largo que el tiempo de viaje de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección. El valor por defecto es de 15 milisegundos.
var settings = new MongoClientSettings { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de viaje de ida y vuelta de un servidor es más largo que el tiempo de viaje de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección. El valor por defecto es de 15 milisegundos.
var settings = new MongoClientSettings { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
IntervaloDeLatidos
El intervalo entre las comprobaciones periódicas de supervisión del servidor. Debe ser mayor o igual a 500 milisegundos. El valor por defecto es 10000 milisegundos (10 segundos).
var builder = new MongoUrlBuilder { HeartbeatInterval = TimeSpan.FromSeconds(5) };
HeartbeatTimeout
El tiempo que un socket de monitorización puede estar inactivo antes de caducar. El valor predeterminado es el valor de la propiedad ConnectTimeout.
var builder = new MongoUrlBuilder { HeartbeatTimeout = TimeSpan.FromSeconds(5) };
Umbral local
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de viaje de ida y vuelta de un servidor es más largo que el tiempo de viaje de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección. El valor por defecto es de 15 milisegundos.
var builder = new MongoUrlBuilder { LocalThreshold = TimeSpan.FromSeconds(15) };
ServerSelectionTimeout
La ventana de latencia para la elegibilidad del servidor. Si el tiempo de viaje de ida y vuelta de un servidor es más largo que el tiempo de viaje de ida y vuelta del servidor más rápido más este valor, el servidor no es elegible para la selección. El valor por defecto es de 15 milisegundos.
var builder = new MongoUrlBuilder { ServerSelectionTimeout = TimeSpan.FromSeconds(30) };
Opciones de codificación
Codificación de lectura
La codificación UTF-8 que se utiliza para la deserialización de cadenas. El valor predeterminado es la codificación estricta, donde el controlador genera una excepción cuando encuentra una secuencia de bytes UTF-8 no válida.
var settings = new MongoClientSettings { ReadEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
WriteEncoding
La codificación UTF-8 que se utilizará para la serialización de string. El valor por defecto es la codificación estricta, donde el controlador arroja una excepción cuando encuentra una secuencia de bytes UTF-8 no válida
var settings = new MongoClientSettings { WriteEncoding = new UTF8Encoding( encoderShouldEmitUTF8Identifier: false, throwOnInvalidBytes: true) };
Nota
Solo MongoClientSettings
Las propiedades ReadEncoding y WriteEncoding solo están disponibles en la clase MongoClientSettings.
Stable API
ServerApi
Permite optar por Stable API versioning. El valor por defecto es null. Consulta Stable API en el manual de MongoDB Server para obtener más información sobre la gestión de versiones del Stable API.
var settings = new MongoClientSettings { ServerApi = new ServerApi( ServerApiVersion.V1, strict: true, deprecationErrors: true), };
Nota
Solo MongoClientSettings
La propiedad ServerApi está disponible solo en la clase MongoClientSettings.
Opciones de reintentos
Opciones misceláneas
NombreDeLaAplicacion
El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del proceso de conexión. El servidor imprime este valor en los registros de MongoDB una vez que la conexión está establecida. El valor también se registra en los registros de query lentas y en las colecciones de perfiles. El valor por defecto es null.
var settings = new MongoClientSettings { ApplicationName = "yourAppName", };
Opciones de cifrado automático
Configuraciones para el cifrado automático del lado del cliente. El valor por defecto es null. Para aprender más sobre el cifrado al lado del cliente, consulta Encriptación en uso.
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
Opciones de configuración de bajo nivel para sockets, TLS, clúster y otros. El valor por defecto es 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
Especifica si la dirección del host está en formato IPv6. El valor predeterminado es false.
var settings = new MongoClientSettings { IPv6 = true, };
IsFrozen
Una opción de solo lectura que indica si la configuración se ha congelado. No se puede cambiar la configuración congelada. El valor predeterminado es false.
var settings = new MongoClientSettings(); if (!settings.IsFrozen) { settings.RetryReads = false; }
Tip
Configuración de congelación
Puedes congelar la configuración de un MongoClientSettings objeto llamando a su método Freeze(). Esto evita que se realicen más cambios en la configuración.
Alternativamente, puede llamar al método FrozenCopy() para crear un nuevo MongoClientSettings objeto con la configuración actual congelada.
LibraryInfo
El nombre y la versión de una biblioteca personalizada creada con el controlador .NET/C#. El controlador envía esta información al servidor.
var settings = new MongoClientSettings { LibraryInfo = new LibraryInfo("customLibraryName", "1.0.0") };
loadBalanced
Especifica si el driver se está conectando a un balanceador de carga. Puede establecer esta propiedad en true solo si se cumplen todas las siguientes condiciones:
Solo especifica un nombre de host
No estás conectándote a un set de réplicas.
No estás utilizando la propiedad
SrvMaxHostsNo estás utilizando la propiedad
DirectConnection
El valor por defecto es false.
var settings = new MongoClientSettings { LoadBalanced = true, };
Configuración de registro
Los ajustes utilizados para los registros. El valor por defecto es null.
var settings = new MongoClientSettings { LoggingSettings = new LoggingSettings( LoggerFactory.Create(l => l.SetMinimumLevel(LogLevel.Debug))) };
esquema
Especifica si se debe usar el formato estándar de cadena de conexión (MongoDB) o el formato de lista de nodos iniciales DNS (MongoDBPlusSrv). Los valores disponibles para esta propiedad se definen en la enumeración ConnectionStringScheme. El valor por defecto es ConnectionStringScheme.MongoDB. Consulta Cadenas de conexión en el manual de MongoDB Server para obtener más información sobre los formatos de cadenas de conexión.
Si la propiedad DirectConnection está configurada en true e intentas usar el formato de lista de nodos iniciales DNS, el driver .NET/C# lanzará una excepción.
var settings = new MongoClientSettings { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
Server
El host y el número de puerto donde se ejecuta MongoDB. El valor por defecto es localhost:27017.
var settings = new MongoClientSettings { Server = new MongoServerAddress("localhost", 27017) };
serverMonitoringMode
Especifica el protocolo de monitorización del servidor que se utilizará. Los valores disponibles para esta propiedad se definen en la enumeración ServerMonitoringMode. El valor predeterminado Auto es.
Cuando esta opción está configurada en Auto, el modo de supervisión se determina por el entorno en el que se ejecuta el driver. El driver utiliza el modo de sondeo en entornos de función como servicio (FaaS), como AWS Lambda, y el modo de transmisión en otros entornos.
var settings = new MongoClientSettings { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
servidor
Los miembros del clúster donde se ejecuta MongoDB. El valor predeterminado es localhost:27017.
var settings = new MongoClientSettings { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
srvMaxHosts
El mayor número de resultados SRV que se seleccionan aleatoriamente al rellenar la lista de semillas o, durante el sondeo de SRV, al añadir nuevos hosts a la topología. El valor predeterminado es 0.
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var settings = new MongoClientSettings { SrvMaxHosts = 5 };
SrvServiceName
El nombre del servicio de los registros de recursos SRV que el driver recupera para construir tu lista de nodos iniciales. El controlador utiliza el nombre del servicio para crear el URI SRV, que coincide con el siguiente formato:
_{srvServiceName}._tcp.{hostname}.{domainname}
Esta propiedad sobrescribe el nombre de servicio por defecto para la búsqueda SRV en el descubrimiento y la sondeo. El valor por defecto es "mongodb".
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var settings = new MongoClientSettings { SrvServiceName = "yourServiceName" };
TranslationOptions
Especifica opciones, como la versión del servidor MongoDB, para traducir consultas LINQ a la API de consultas. El valor predeterminado es null.
var settings = new MongoClientSettings { TranslationOptions = new ExpressionTranslationOptions() { CompatibilityLevel = ServerVersion.Server80, EnableClientSideProjections = true } };
NombreDeLaAplicacion
El nombre de la aplicación que el controlador pasa al servidor en los metadatos del cliente como parte del proceso de conexión. El servidor imprime este valor en los registros de MongoDB una vez que la conexión está establecida. El valor también se registra en los registros de query lentas y en las colecciones de perfiles. El valor por defecto es null.
var builder = new MongoUrlBuilder { ApplicationName = "yourAppName", };
DatabaseName
El nombre de la base de datos a la que se conecta el cliente.
var builder = new MongoUrlBuilder { DatabaseName = "test_database" };
IPv6
Especifica si la dirección del host está en formato IPv6. El valor predeterminado es false.
var builder = new MongoUrlBuilder { IPv6 = true, };
loadBalanced
Especifica si el driver se está conectando a un balanceador de carga. Puede establecer esta propiedad en true solo si se cumplen todas las siguientes condiciones:
Solo especifica un nombre de host
No estás conectándote a un set de réplicas.
No estás utilizando la propiedad
SrvMaxHostsNo estás utilizando la propiedad
DirectConnection
El valor por defecto es false.
var builder = new MongoUrlBuilder { LoadBalanced = true, };
esquema
Especifica si se debe usar el formato estándar de cadena de conexión (MongoDB) o el formato de lista de nodos iniciales DNS (MongoDBPlusSrv). Los valores disponibles para esta propiedad se definen en la enumeración ConnectionStringScheme. El valor por defecto es ConnectionStringScheme.MongoDB. Consulta Cadenas de conexión en el manual de MongoDB Server para obtener más información sobre los formatos de cadenas de conexión.
Si la propiedad DirectConnection está configurada en true e intentas usar el formato de lista de nodos iniciales DNS, el driver .NET/C# lanzará una excepción.
var builder = new MongoUrlBuilder { Scheme = ConnectionStringScheme.MongoDBPlusSrv, };
Server
El host y el número de puerto donde se ejecuta MongoDB. El valor por defecto es localhost:27017.
var builder = new MongoUrlBuilder { Server = new MongoServerAddress("localhost", 27017) };
serverMonitoringMode
Especifica el protocolo de monitorización del servidor que se utilizará. Los valores disponibles para esta propiedad se definen en la enumeración ServerMonitoringMode. El valor predeterminado Auto es.
Cuando esta opción está configurada en Auto, el modo de supervisión se determina por el entorno en el que se ejecuta el driver. El driver utiliza el modo de sondeo en entornos de función como servicio (FaaS), como AWS Lambda, y el modo de transmisión en otros entornos.
var builder = new MongoUrlBuilder { ServerMonitoringMode = MongoDB.Driver.Core.Servers.ServerMonitoringMode.Stream };
servidor
Los miembros del clúster donde se ejecuta MongoDB. El valor predeterminado es localhost:27017.
var builder = new MongoUrlBuilder { Servers = new List<MongoServerAddress>() { new ("localhost", 27017), new ("localhost", 27018) } };
srvMaxHosts
El mayor número de resultados SRV que se seleccionan aleatoriamente al rellenar la lista de semillas o, durante el sondeo de SRV, al añadir nuevos hosts a la topología. El valor predeterminado es 0.
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var builder = new MongoUrlBuilder { SrvMaxHosts = 5 };
SrvServiceName
El nombre del servicio de los registros de recursos SRV que el driver recupera para construir tu lista de nodos iniciales. El controlador utiliza el nombre del servicio para crear el URI SRV, que coincide con el siguiente formato:
_{srvServiceName}._tcp.{hostname}.{domainname}
Esta propiedad sobrescribe el nombre de servicio por defecto para la búsqueda SRV en el descubrimiento y la sondeo. El valor por defecto es "mongodb".
Esta propiedad solo se puede usar si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede usar al conectarse a un conjunto de réplicas.
var builder = new MongoUrlBuilder { SrvServiceName = "yourServiceName" };
Información Adicional
Para obtener más información sobre los tipos utilizados en esta página, consulte la siguiente documentación de la API: