Docs Menu
Docs Home
/ /

Formatos de cadena de conexión

Puede especificar la cadena de conexión de MongoDB utilizando uno de los siguientes formatos:

Los clústeres MongoDB Atlas utilizan el formato de conexión SRV a menos que se conecte a un archivo en línea.

Para conectarse directamente a un host y puerto especificados en una cadena de conexión, configure la directConnection opción true como. Para obtener más información sobre directConnection y las demás opciones de la cadena de conexión, consulte Opciones de la cadena de conexión.

MongoDB admite una Lista de semillas generada por DNS. Usar DNS para generar la lista de servidores disponibles permite mayor flexibilidad de implementación y la posibilidad de cambiar los servidores en rotación sin reconfigurar los clientes.

El esquema de conexión URI SRV tiene el siguiente formato:

mongodb+srv://[username:password@]host[/[defaultauthdb][?options]]

Una cadena de conexión incluye los siguientes componentes:

Componente
Descripción

mongodb:// or mongodb+srv://

Prefijo obligatorio para identificar una cadena en formato de conexión estándarmongodb:// () o SRVmongodb+srv:// (). Para obtener más información sobre cada formato, consulte Formato de cadena de conexión estándar y Formato de conexión SRV.

username:password@

Opcional. Credenciales de autenticación.

Si se especifica, el cliente intentará autenticar al usuario en la base de authSource datos. Si authSource no se especifica, el cliente intentará autenticar al usuario en la base de defaultauthdb datos. Y si no defaultauthdb se especifica, en la admin base de datos.

Si el nombre de usuario o la contraseña incluyen los siguientes caracteres, dichos caracteres deben convertirse utilizando codificación de porcentaje:

$ : / ? # [ ] @

Consulte también authSource.

host[:port]

El host (y el número de puerto opcional) donde se mongod ejecuta la instancia (o mongos la instancia para un clúster fragmentado). Puede especificar un nombre de host, una dirección IP o un socket de dominio UNIX. Especifique tantos hosts como corresponda para su topología de implementación:

  • Para una instancia independiente, especifique el nombre de host de la instancia mongod independiente.

  • Para un conjunto de réplicas, especifique los nombres de host de las instancias tal como aparecen en la configuración del conjunto de mongod réplicas.

  • Para un clúster fragmentado, especifique los nombres de host de las mongos instancias.

Si no se especifica el número de puerto, se utiliza el puerto predeterminado 27017.

Si utiliza el formato de conexión URI SRV, solo puede especificar un host y ningún puerto. De lo contrario, el controlador o mongosh genera un error de análisis y no realiza la resolución DNS.

/defaultauthdb

Opcional. La base de datos de autenticación que se utilizará si la cadena de conexión incluye las username:password@ credenciales de autenticación, pero no authSource se especifica la opción.

Si authSource defaultauthdb no se especifican ni, el cliente intentará autenticar al usuario especificado en la admin base de datos. Para más información,authSource consulte.

IMPORTANTE: Para las implementaciones de Atlas que utilizan el formato de conexión SRV, authSource se configura automáticamente como admin en el TXT registro DNS. Para obtener más información sobre cómo conectarse a implementaciones de Atlas, consulte Conectarse a un clúster de Atlas.

?<options>

Opcional. Una cadena de consulta que especifica las opciones específicas de la conexión como <name>=<value> pares. Consulte "Opciones de la cadena de conexión" para obtener una descripción completa de estas opciones.

Si la cadena de conexión no especifica una base de datos, debes especificar una barra diagonal (/) entre el último host y el signo de interrogación (?) que inicia la cadena de opciones.

Para usar la lista de semillas DNS, utilice la misma sintaxis que una cadena de conexión estándar, con el prefijo en mongodb+srv lugar del mongodb estándar. El +srv indica al cliente que el nombre de host que sigue corresponde a un registro SRV DNS. El controlador o consulta el registro DNS para mongosh mongod mongos determinar qué hosts ejecutan las instancias o.

Nota

Al usar el +srv modificador de cadena de conexión, la conexión establece automáticamente la tls opción ssl (o su equivalente) true en. Para anular este comportamiento, establezca explícitamente la tls opción (o su ssl equivalente) en false en la cadena de consulta de la conexión.

Al utilizar el formato +srv, debe especificar hostname, domain y top-level domain (TLD) en el siguiente formato: <hostname>.<domain>.<TLD>. Esta tabla muestra cómo los marcadores de posición corresponden a valores de ejemplo:

Marcador de posición
Ejemplo

<hostname>

server

<domain>

example

<TLD>

com

<hostname>.<domain>.<TLD>

server.example.com

Este ejemplo muestra una cadena de conexión de lista de semillas DNS que utiliza correctamente el <hostname>.<domain>.<TLD> formato. Se autentica como myDatabaseUser el usuario con la D1fficultP%40ssw0rd contraseña:

mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@server.example.com/

La configuración DNS correspondiente es similar a:

Record TTL Class Priority Weight Port Target
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.example.com.
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.

Los registros SRV individuales deben estar en formato _mongodb._tcp.<hostname>.<domain>.<TLD>.

Cuando un cliente se conecta a un miembro de la lista de semillas, recupera una lista de miembros del conjunto de réplicas a los que puede conectarse. Los clientes suelen usar alias DNS en sus listas de semillas, lo que significa que el host puede devolver una lista de servidores diferente a la original. En este caso, los clientes usan los nombres de host proporcionados por el conjunto de réplicas en lugar de los que aparecen en la lista de semillas para garantizar que se pueda acceder a los miembros del conjunto de réplicas mediante los nombres de host de la configuración resultante.

Importante

Los nombres de host devueltos en los registros SRV deben compartir el mismo dominio principal (en este ejemplo, example.com) que el nombre de host especificado. Si los dominios principales y el nombre de host no coinciden, no podrá conectarse.

Al igual que la cadena de conexión estándar, la cadena de conexión de la lista de semillas DNS permite especificar opciones como cadena de consulta. Con una cadena de conexión de la lista de semillas DNS, también se pueden especificar las siguientes opciones mediante un registro TXT:

  • replicaSet

  • authSource

Solo se puede especificar un registro TXT por instancia. Si aparecen varios registros TXT en el DNS o si el registro TXT contiene una opción mongod distinta replicaSet de authSource o, el cliente devuelve un error.

El registro TXT para la entrada DNS server.example.com se parece al siguiente ejemplo:

Record TTL Class Text
server.example.com. 86400 IN TXT "replicaSet=mySet&authSource=authDB"

En conjunto, los registros SRV de DNS y las opciones especificadas en el registro TXT se resuelven en la siguiente cadena de conexión de formato estándar:

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb1.example.com:27317,mongodb2.example.com:27017/?replicaSet=mySet&authSource=authDB

Para anular las opciones especificadas en un registro TXT, especifique la opción en la cadena de consulta. Por ejemplo, la siguiente cadena de consulta anula la opción authSource configurada en el registro TXT de la entrada DNS anterior.

mongodb+srv://myDatabaseUser:D1fficultP%40ssw0rd@server.example.com/?connectTimeoutMS=300000&authSource=aDifferentAuthDB

Dada la anulación de authSource, la cadena de conexión equivalente en el formato estándar se parecería al siguiente ejemplo:

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb1.example.com:27317,mongodb2.example.com:27017/?connectTimeoutMS=300000&replicaSet=mySet&authSource=aDifferentAuthDB

Nota

La mongodb+srv opción falla si no hay ningún DNS disponible con registros que correspondan al nombre de host identificado en la cadena de conexión. Si utiliza el +srv modificador de cadena de conexión, la tls opción (o su ssl equivalente) se establece en true para la conexión. Puede anular este comportamiento estableciendo explícitamente la tls opción (o su ssl equivalente) en false con tls=false ssl=false(o) en la cadena de consulta.

Para ver un ejemplo que conecta mongosh a un conjunto de réplicas utilizando el formato de conexión de lista de semillas DNS, consulte Opciones de conexión de mongosh.

Esta sección describe el formato estándar de la URI de conexión de MongoDB que se utiliza para conectarse a una implementación independiente, un conjunto de réplicas o un clúster fragmentado de MongoDB autohospedado.

El esquema estándar de conexión URI tiene la forma:

mongodb://[username:password@]host1[:port1][,...hostN[:portN]][/[defaultauthdb][?options]]

Se puede especificar una base de datos por defecto en el campo [/defaultauthdb] de la cadena de conexión. El cliente utiliza la base de datos [/defaultauthdb] especificada como la base de datos por defecto. Si no se especifica por la cadena de conexión, MongoDB usa la base de datos test como la base de datos por defecto.

Puede especificar la base de datos de autenticación en su cadena de conexión mediante la authSource opción de conexión. Si se especifica, el cliente utiliza esta base de datos para verificar su identidad y credenciales de authSource [/defaultauthdb] usuario. Si no authSource [/defaultauthdb] se especifica, se usaauthSource la admin base de datos de forma predeterminada. Si no se especifican ni, se usa la base de datos de forma predeterminada.

La siguiente cadena de conexión de ejemplo establece la base de datos predeterminada en myDefaultDB y la base de datos de autenticación en admin:

mongodb://myDatabaseUser:D1fficultP%40ssw0rd@mongodb0.example.com:27017/myDefaultDB?authSource=admin

Una cadena de conexión incluye los siguientes componentes:

Componente
Descripción

mongodb:// or mongodb+srv://

Prefijo obligatorio para identificar una cadena en formato de conexión estándarmongodb:// () o SRVmongodb+srv:// (). Para obtener más información sobre cada formato, consulte Formato de cadena de conexión estándar y Formato de conexión SRV.

username:password@

Opcional. Credenciales de autenticación.

Si se especifica, el cliente intentará autenticar al usuario en la base de authSource datos. Si authSource no se especifica, el cliente intentará autenticar al usuario en la base de defaultauthdb datos. Y si no defaultauthdb se especifica, en la admin base de datos.

Si el nombre de usuario o la contraseña incluye los siguientes caracteres, deben convertirse mediante la codificación porcentual:

$ : / ? # [ ] @

Consulte también authSource.

host[:port]

El host (y el número de puerto opcional) donde se mongod ejecuta la instancia (o mongos la instancia para un clúster fragmentado). Puede especificar un nombre de host, una dirección IP o un socket de dominio UNIX. Especifique tantos hosts como corresponda para su topología de implementación:

  • Para una instancia independiente, especifique el nombre de host de la instancia mongod independiente.

  • Para un conjunto de réplicas, especifique los nombres de host de las instancias tal como aparecen en la configuración del conjunto de mongod réplicas.

  • Para un clúster fragmentado, especifique los nombres de host de las mongos instancias.

Si no se especifica el número de puerto, se utiliza el puerto predeterminado 27017.

Si utiliza el formato de conexión URI SRV, solo puede especificar un host y ningún puerto. De lo contrario, el controlador o mongosh genera un error de análisis y no realiza la resolución DNS.

/defaultauthdb

Opcional. La base de datos de autenticación que se utilizará si la cadena de conexión incluye las username:password@ credenciales de autenticación, pero no authSource se especifica la opción.

Si authSource defaultauthdb no se especifican ni, el cliente intentará autenticar al usuario especificado en la admin base de datos. Para más información,authSource consulte.

IMPORTANTE: Para las implementaciones de Atlas que utilizan el formato de conexión SRV, authSource se configura automáticamente como admin en el TXT registro DNS. Para obtener más información sobre cómo conectarse a implementaciones de Atlas, consulte Conectarse a un clúster de Atlas.

?<options>

Opcional. Una cadena de consulta que especifica las opciones específicas de la conexión como <name>=<value> pares. Consulte "Opciones de la cadena de conexión" para obtener una descripción completa de estas opciones.

Si la cadena de conexión no especifica una base de datos, debes especificar una barra diagonal (/) entre el último host y el signo de interrogación (?) que inicia la cadena de opciones.

Para ver más ejemplos de cadenas de conexión, consulte Cadenas de conexión.

Volver

opciones

En esta página