Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

Especifica opciones de conexión

Esta página describe las opciones de conexión disponibles en el driver Go y explica cómo aplicarlas a su conexión de MongoDB.

Las siguientes secciones describen cómo puede especificar las opciones de conexión mediante una cadena de conexión o una estructura ClientOptions.

Puedes especificar opciones de conexión en una cadena de conexión pasando una estructura ClientOptions al método Connect(). En la cadena de conexión, puedes incluir opciones de conexión en la string como pares <name>=<value>. En el siguiente ejemplo, la cadena de conexión contiene la opción connectTimeoutMS con un valor de 60000 milisegundos y la opción tls con un valor de true:

const uri = "mongodb+srv://localhost:27017/?connectTimeoutMS=60000&tls=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

También puede encadenar opciones de conexión a la estructura ClientOptions para configurar los ajustes de conexión. Configurar la conexión de esta manera facilita el cambio de ajustes en tiempo de ejecución, ayuda a detectar errores durante la compilación y proporciona más opciones de configuración que la cadena de conexión.

El siguiente ejemplo de código establece la opción Timeout en 60 segundos y habilita TLS pasando una estructura tls.Config vacía al método SetTLSConfig():

opts := options.Client().
SetConnectTimeout(60 * time.Second).
SetTLSConfig(&tls.Config{})
client, _ := mongo.Connect(opts)

Especifica si se debe forzar el despacho de todas las operaciones al host. Si especifica esta opción, el driver no acepta el formato de conexión SRV. En su lugar, debe utilizar el formato URI de conexión estándar. Para obtener más información sobre la conexión SRV y los formatos de conexión estándar, consulte la guía Cadenas de conexión en el manual de MongoDB Server.

Esta propiedad debe establecerse en false si se especifica más de un nombre de host.

Tipo de dato: bool

Valor por defecto: false

Ejemplo:

const uri = "mongodb://localhost:27017/?directConnection=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El nombre del set de réplicas al que conectarse.

Tipo de dato: string

Valor por defecto: nil

Ejemplo:

const uri = "mongodb://localhost:27017/?replicaSet=yourReplicaSet"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Especifica si se debe forzar el despacho de todas las operaciones al host. Si especifica esta opción, el driver no acepta el formato de conexión SRV. En su lugar, debe utilizar el formato URI de conexión estándar. Para obtener más información sobre la conexión SRV y los formatos de conexión estándar, consulte la guía Cadenas de conexión en el manual de MongoDB Server.

Esta propiedad debe establecerse en false si se especifica más de un nombre de host.

Tipo de dato: bool

Valor por defecto: false

Ejemplo:

opts := options.Client().
SetDirect(true)
client, _ := mongo.Connect(opts)

El nombre del set de réplicas al que conectarse.

Tipo de dato: string

Valor por defecto: nil

Ejemplo:

opts := options.Client().
SetReplicaSet("yourReplicaSet")
client, _ := mongo.Connect(opts)

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.

Tipo de dato: bool

Valor por defecto: nil

Ejemplo:

const uri = "mongodb://localhost:27017/?tls=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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.

Tipo de dato: tls.Config

Valor por defecto: false

Ejemplo:

opts := options.Client().
SetTLSConfig(&tls.Config{})
client, _ := mongo.Connect(opts)

Para obtener más información sobre las opciones de TLS, consulte la guía Habilitar TLS en una conexión.

La duración de tiempo que el driver intenta establecer una sola conexión de socket TCP con el servidor antes de agotar el tiempo de espera.

Tipo de dato: intno negativo

Valor por defecto: 30000 Milisegundos

Ejemplo:

const uri = "mongodb://localhost:27017/?connectTimeoutMS=60000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

La cantidad de tiempo que una sola operación ejecutada en el cliente puede ejecutarse antes de devolver un error.

Tipo de dato: intno negativo

Valor por defecto: nil

Ejemplo:

const uri = "mongodb://localhost:27017/?timeoutMS=30000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

La duración de tiempo que el driver intenta establecer una sola conexión de socket TCP con el servidor antes de agotar el tiempo de espera.

Tipo de dato: time.Duration

Valor por defecto: 30 Segundos

Ejemplo:

opts := options.Client().
SetConnectTimeout(60 * time.Second)
client, _ := mongo.Connect(opts)

La cantidad de tiempo que una sola operación ejecutada en el cliente puede ejecutarse antes de devolver un error.

Tipo de dato: time.Duration

Valor por defecto: nil

Ejemplo:

opts := options.Client().
SetTimeout(30 * time.Second)
client, _ := mongo.Connect(opts)

Los tipos de compresión preferidos, en orden, para los mensajes del protocolo de conexión enviados al servidor o recibidos de este. Puede habilitar "snappy", "zlib" y "zstd" como dependencias opcionales en tiempo de compilación. El driver utiliza el primero de estos tipos de compresión que admite el servidor.

Tipo de dato: string (valores separados por comas)

Valor por defecto: nil

Ejemplo:

const uri = "mongodb://localhost:27017/?compressors=zlib,snappy"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El nivel de compresión para que zlib lo use. Esta opción se ignora si zlib no se especifica como compresor a través de ApplyURI o SetCompressors. Esta opción acepta un valor entero entre -1 y 9:

  • -1: (por defecto). zlib utiliza su nivel de compresión por defecto (normalmente 6).

  • 0: Sin compresión.

  • 1: La velocidad más rápida pero la compresión más baja.

  • 9: La mejor compresión pero la velocidad más lenta.

Tipo de dato: int

Valor por defecto: -1

Ejemplo:

const uri = "mongodb://localhost:27017/?compressors=zlib&zlibCompressionLevel=6"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El nivel de compresión para que zstd lo use. Esta opción se ignora si zstd no se especifica como compresor a través de ApplyURI o SetCompressors. Esta opción acepta valores enteros entre 1 y 20:

  • 1: La velocidad más rápida pero la compresión más baja.

  • 20: La mejor compresión pero la velocidad más lenta.

Tipo de dato: int

Valor por defecto: 6

Ejemplo:

const uri = "mongodb://localhost:27017/?compressors=zstd&zstdCompressionLevel=6"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Los tipos de compresión preferidos, en orden, para los mensajes del protocolo de conexión enviados al servidor o recibidos de este. Puede habilitar "snappy", "zlib" y "zstd" como dependencias opcionales en tiempo de compilación. El driver utiliza el primero de estos tipos de compresión que admite el servidor.

Tipo de dato: []string

Valor por defecto: nil

Ejemplo:

opts := options.Client().
SetCompressors([]string{"zlib", "snappy"})
client, _ := mongo.Connect(opts)

El nivel de compresión para que zlib lo use. Esta opción se ignora si zlib no se especifica como compresor a través de ApplyURI o SetCompressors. Esta opción acepta un valor entero entre -1 y 9:

  • -1: (Por defecto). zlib utiliza su nivel de compresión por defecto (normalmente 6).

  • 0: Sin compresión.

  • 1: La velocidad más rápida, pero la compresión más baja.

  • 9: Mejor compresión pero la velocidad más lenta.

Tipo de dato: int

Valor por defecto: -1

Ejemplo:

opts := options.Client().
SetCompressors([]string{"zlib"}).
SetZlibLevel(6)
client, _ := mongo.Connect(opts)

El nivel de compresión para que zstd lo use. Esta opción se ignora si zstd no se especifica como compresor a través de ApplyURI o SetCompressors. Esta opción acepta valores enteros entre 1 y 20:

Tipo de dato: int

Valor por defecto: 6

Ejemplo:

opts := options.Client().
SetCompressors([]string{"zstd"}).
SetZstdLevel(8)
client, _ := mongo.Connect(opts)

Para obtener más información sobre la compresión, consulte la guía Compresión de red.

El mayor número de clientes o conexiones que el driver puede crear en su pool de conexiones. Este recuento incluye las conexiones en uso.

Tipo de dato: intno negativo

Valor por defecto: 100

Ejemplo:

const uri = "mongodb://localhost:27017/?maxPoolSize=150"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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.

Tipo de dato: intno negativo

Valor por defecto: 0

Ejemplo:

const uri = "mongodb://localhost:27017/?minPoolSize=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El tiempo que una conexión puede estar inactiva antes de que el driver la cierre.

Tipo de dato: intno negativo

Valor por defecto: 0

Ejemplo:

const uri = "mongodb://localhost:27017/?maxIdleTimeMS=8000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El número máximo de conexiones que un pool de conexiones puede establecer simultáneamente.

Tipo de dato: intno negativo

Valor por defecto: 2

Ejemplo:

const uri = "mongodb://localhost:27017/?maxConnecting=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El mayor número de clientes o conexiones que el driver puede crear en su pool de conexiones. Este recuento incluye las conexiones en uso.

Tipo de dato: uint64no negativo

Valor por defecto: 100

Ejemplo:

opts := options.Client().
SetMaxPoolSize(150)
client, _ := mongo.Connect(opts)

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.

Tipo de dato: uint64no negativo

Valor por defecto: 0

Ejemplo:

opts := options.Client().
SetMinPoolSize(3)
client, _ := mongo.Connect(opts)

El tiempo que una conexión puede estar inactiva antes de que el driver la cierre.

Tipo de dato: time.Duration

Valor por defecto: 0

Ejemplo:

opts := options.Client().
SetMaxConnIdleTime(8 * time.Second)
client, _ := mongo.Connect(opts)

El número máximo de conexiones que un pool de conexiones puede establecer simultáneamente.

Tipo de dato: uint64no negativo

Valor por defecto: 2

Ejemplo:

opts := options.Client().
SetMaxConnecting(3)
client, _ := mongo.Connect(opts)

Para obtener más información sobre los pool de conexiones, consulta la guía pool de conexiones.

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.

Tipo de dato: int or string

Valor por defecto: 1 or "majority"

Ejemplo:

const uri = "mongodb://localhost:27017/?w=2"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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.

Tipo de dato: writeconcern.WriteConcern

Valor por defecto: 1 or "majority"

Ejemplo:

wc := &writeconcern.WriteConcern{
W: 2,
}
opts := options.Client().SetWriteConcern(wc)
client, _ := mongo.Connect(opts)

El nivel de consistencia de lectura del cliente. Para obtener más información, consulte la referencia de nivel de consistencia de lectura en el manual de MongoDB Server.

Tipo de dato: string

Valor por defecto: local

Ejemplo:

const uri = "mongodb://localhost:27017/?readConcernLevel=majority"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El nivel de consistencia de lectura del cliente. Para obtener más información, consulte la referencia de nivel de consistencia de lectura en el manual de MongoDB Server.

Tipo de dato: readconcern.ReadConcern

Valor por defecto: nil

Ejemplo:

opts := options.Client().
SetReadConcern(readconcern.Majority())
client, _ := mongo.Connect(opts)

La configuración de preferencia de lectura por defecto del cliente. Consulte Preferencia de lectura en el manual de MongoDB Server para obtener más información.

Tipo de dato: string

Valor por defecto: primary

Ejemplo:

const uri = "mongodb://localhost:27017/?readPreference=primaryPreferred"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

La configuración de preferencia de lectura por defecto del cliente. Consulte Preferencia de lectura en el manual de MongoDB Server para obtener más información.

Tipo de dato: readpref.ReadPref

Valor por defecto: readpref.Primary()

Ejemplo:

opts := options.Client().
SetReadPreference(readpref.PrimaryPreferred())
client, _ := mongo.Connect(opts)

El mecanismo que utiliza el driver para autenticarse en MongoDB Server. Si no especificas un mecanismo de autenticación, el driver utiliza SCRAM-SHA-1 o SCRAM-SHA-256, según la versión del servidor.

Para obtener más información sobre los mecanismos de autenticación disponibles, consulte las guías Mecanismo de autenticación.

Tipo de dato: string

Valor por defecto: vacío (sin autenticación), o SCRAM-SHA-256 una vez que la autenticación esté habilitada

Ejemplo:

const uri = "mongodb://user:password@localhost:27017/?authMechanism=PLAIN&authSource=admin"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El mecanismo que utiliza el driver para autenticarse en MongoDB Server. Si no especificas un mecanismo de autenticación, el driver utiliza SCRAM-SHA-1 o SCRAM-SHA-256, según la versión del servidor.

Para obtener más información sobre los mecanismos de autenticación disponibles, consulte las guías Mecanismo de autenticación.

Tipo de dato: Credential

Valor por defecto: vacío (sin autenticación), o SCRAM-SHA-256 una vez que la autenticación esté habilitada

Ejemplo:

credential := options.Credential{
AuthMechanism: "PLAIN",
AuthSource: "admin",
Username: "user",
Password: "password",
}
opts := options.Client().SetAuth(credential)
client, _ := mongo.Connect(opts)

El tiempo que el driver intenta seleccionar un servidor antes de agotar el tiempo de espera.

Tipo de dato: intno negativo

Valor por defecto: 30000 Milisegundos

Ejemplo:

const uri = "mongodb://localhost:27017/?serverSelectionTimeoutMS=40000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

La ventana de latencia para la elegibilidad del servidor. Si el viaje de ida y vuelta de un servidor tarda más 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.

Tipo de dato: intno negativo

Valor por defecto: 15 Milisegundos

Ejemplo:

const uri = "mongodb://localhost:27017/?localThresholdMS=20000"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El tiempo que el driver intenta seleccionar un servidor antes de agotar el tiempo de espera.

Tipo de dato: time.Duration

Valor por defecto: 30 Segundos

Ejemplo:

opts := options.Client().
SetServerSelectionTimeout(40 * time.Second)
client, _ := mongo.Connect(opts)

La ventana de latencia para la elegibilidad del servidor. Si el viaje de ida y vuelta de un servidor tarda más 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.

Tipo de dato: time.Duration

Valor por defecto: 15 Milisegundos

Ejemplo:

opts := options.Client().
SetLocalThreshold(20 * time.Millisecond)
client, _ := mongo.Connect(opts)

Activar las lecturas reintentables.

Tipo de dato: bool

Valor por defecto: true

Ejemplo:

const uri = "mongodb://localhost:27017/?retryReads=false"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Activar las escrituras reintentables.

Tipo de dato: bool

Valor por defecto: true

Ejemplo:

const uri = "mongodb://localhost:27017/?retryWrites=false"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El número máximo de veces que el driver debe reintentar las operaciones que fallan con un error de sobrecarga del lado del servidor.

Tipo de dato: intno negativo

Valor por defecto: 2

Ejemplo:

const uri = "mongodb://localhost:27017/?maxAdaptiveRetries=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

Activar las lecturas reintentables.

Tipo de dato: bool

Valor por defecto: true

Ejemplo:

opts := options.Client().
SetRetryReads(false)
client, _ := mongo.Connect(opts)

Activar las escrituras reintentables.

Tipo de dato: bool

Valor por defecto: true

Ejemplo:

opts := options.Client().
SetRetryWrites(false)
client, _ := mongo.Connect(opts)

El número máximo de veces que el driver debe reintentar las operaciones que fallan con un error de sobrecarga del lado del servidor.

Tipo de dato: uintno negativo

Valor por defecto: 2

Ejemplo:

const uri = "mongodb://localhost:27017/?maxAdaptiveRetries=3"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El nombre de la aplicación que el driver pasa al servidor en los metadatos del cliente como parte del protocolo de enlace de conexión. El servidor imprime este valor en los registros de MongoDB una vez que establece la conexión. El valor también se registra en los registros de query lentas y en las colecciones de perfiles.

Tipo de dato: string

Valor por defecto: nil

Ejemplo:

const uri = "mongodb://localhost:27017/?appName=yourAppName"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

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 SrvMaxHosts

  • No estás utilizando la propiedad DirectConnection

Tipo de dato: bool

Valor por defecto: false

Ejemplo:

const uri = "mongodb://localhost:27017/?loadBalanced=true"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El mayor número de resultados de SRV que se seleccionarán al azar al rellenar inicialmente la lista de nodos iniciales o, durante la exploración de SRV, al añadir nuevos hosts a la topología.

Puedes usar esta propiedad solo si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede utilizar al conectarse a un set de réplicas.

Tipo de dato: intno negativo

Valor por defecto: 0

Ejemplo:

opts := options.Client().
SetSRVMaxHosts(5)
client, _ := mongo.Connect(opts)

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".

Puedes usar esta propiedad solo si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede utilizar al conectarse a un set de réplicas.

Tipo de dato: string

Valor por defecto: mongodb

Ejemplo:

const uri = "mongodb+srv://localhost/?srvServiceName=yourServiceName"
client, _ := mongo.Connect(options.Client().ApplyURI(uri))

El nombre de la aplicación que el driver pasa al servidor en los metadatos del cliente como parte del protocolo de enlace de conexión. El servidor imprime este valor en los registros de MongoDB una vez que establece la conexión. El valor también se registra en los registros de query lentas y en las colecciones de perfiles.

Tipo de dato: string

Valor por defecto: nil

Ejemplo:

opts := options.Client().
SetAppName("yourAppName")
client, _ := mongo.Connect(opts)

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 SrvMaxHosts

  • No estás utilizando la propiedad DirectConnection

Tipo de dato: bool

Valor por defecto: false

Ejemplo:

opts := options.Client().
SetLoadBalanced(true)
client, _ := mongo.Connect(opts)

Configure la versión de la API enviada al servidor al ejecutar comandos. Para obtener más información sobre la API del servidor, consulte la guía Stable API.

Tipo de dato: ServerAPIOptions

Valor por defecto: nil

Ejemplo:

opts := options.Client().
SetServerAPIOptions(options.ServerAPI(options.ServerAPIVersion1))
client, _ := mongo.Connect(opts)

El mayor número de resultados de SRV que se seleccionarán al azar al rellenar inicialmente la lista de nodos iniciales o, durante la exploración de SRV, al añadir nuevos hosts a la topología.

Puedes usar esta propiedad solo si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede utilizar al conectarse a un set de réplicas.

Tipo de dato: intno negativo

Valor por defecto: 0

Ejemplo:

opts := options.Client().
SetSRVMaxHosts(5)
client, _ := mongo.Connect(opts)

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".

Puedes usar esta propiedad solo si el esquema de la cadena de conexión está establecido en ConnectionStringScheme.MongoDBPlusSrv. No se puede utilizar al conectarse a un set de réplicas.

Tipo de dato: string

Valor por defecto: mongodb

Ejemplo:

opts := options.Client().
SetSRVServiceName("yourServiceName")
client, _ := mongo.Connect(opts)

Para aprender más sobre las opciones que puedes especificar en una cadena de conexión, consulta Opciones de cadena de conexión en el manual del MongoDB Server.

Para obtener más información sobre los tipos utilizados en esta página, consulte la siguiente documentación de la API: