Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
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 de MongoDB Atlas usan el formato de conexión SRV a menos que te conectes a un fichero en línea.

Para conectar directamente a un host y puerto especificados en una cadena de conexión, ajusta la opción directConnection a true. Para obtener información completa sobre directConnection y otras opciones de la cadena de conexión, consulte Opciones de cadena de conexión.

MongoDB soporta una DNSconstruido lista de nodos iniciales. Usar DNS para construir la lista de servidores disponibles permite más flexibilidad en la implementación y la capacidad de cambiar los servidores en rotación sin reconfigurar los clientes.

El esquema de conexión SRV URI tiene la siguiente forma:

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

Una cadena de conexión incluye los siguientes componentes:

Componente
Descripción

mongodb:// or mongodb+srv://

Un prefijo requerido para identificar que esto es una string en el formato de conexión estándar (mongodb://) o en el formato de conexión SRV (mongodb+srv://). Para aprender más sobre cada formato, vea Formato estándar de cadena de conexión y Formato de conexión SRV.

username:password@

Opcional. Credenciales de autenticación.

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

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 está ejecutando la instancia mongod (o la instancia mongos 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 sea apropiado para su topología de implementación:

  • Para un autónomo, especifique el nombre de host de la instancia autónoma mongod.

  • Para un set de réplicas, especifica el/los nombre(s) de host de la(s) instancia(s) de mongod tal como se indica en la configuración del set de 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 por defecto 27017.

Si utilizas el formato de conexión URI SRV, sólo puedes 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 de DNS.

/defaultauthdb

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

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 en admin en el registro DNS de TXT. Para obtener más información sobre cómo conectarse a las implementaciones de Atlas, consulta Conéctate 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 sintaxis de cadena de conexión estándar con el prefijo mongodb+srv en lugar del mongodb estándar. El +srv indica al cliente que el nombre de host que sigue corresponde a un registro DNS SRV. El controlador o consulta el DNS para obtener el registro y mongosh mongod mongos lo utiliza para determinar qué hosts ejecutan las instancias o.

Nota

El +srv modificador de cadena de conexión establece automáticamente, o la opción tls equivalente,ssl trueen. Para anular este comportamiento, establezca explícitamente tls o ssl en false en la cadena de consulta de 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 nodo de la lista de nodos iniciales, el cliente recupera una lista de los nodos del set de réplicas a los que puede conectarse. Los clientes suelen utilizar alias DNS en sus listas de nodos iniciales, lo que significa que el host puede devolver una lista de servidores que difiera de la lista de nodos iniciales original. Si esto ocurre, los clientes utilizan los nombres de host proporcionados por el conjunto de réplicas en lugar de los nombres de host listados en la lista de nodos iniciales para asegurar que los miembros del conjunto de réplicas puedan ser alcanzados a través de los nombres de host en la configuración resultante del conjunto de réplicas.

Importante

Los nombres de host devueltos en los registros SRV deben compartir el mismo dominio superior (en este ejemplo, example.com) que el nombre de host dado. Si los dominios superiores y el nombre de host no coinciden, no se puede conectar.

Al igual que la cadena de conexión estándar, la cadena de conexión de la lista de nodos iniciales DNS admite la especificación de opciones como un string del query. Con una cadena de conexión de lista de nodos iniciales DNS, también puede especificar las siguientes opciones a través de un registro TXT:

  • replicaSet

  • authSource

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

El registro TXT para la entrada DNS server.example.com se asemeja 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 del registro TXT, especifique la opción en la cadena de consulta. El siguiente ejemplo 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 registros DNS disponibles que correspondan al nombre de host especificado 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. Para anular este comportamiento, establezca explícitamente tls o ssl false en en la cadena de consulta de conexión.

Para conectar mongosh a un conjunto de réplicas utilizando el formato de lista de semillas DNS, consulte las opciones de conexión de mongosh.

Esta sección describe el formato estándar del URI de conexión de MongoDB usado para conectarse a una implementación autónomo, set de réplicas o clúster fragmentado de MongoDB autoalojado.

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.

Puedes especificar la base de datos de autenticación en tu cadena de conexión mediante la authSource opción de conexión. Si se especifica, el cliente utiliza esta base de datos para verificar tu identidad y credenciales. Si no se especifica, se convierte porauthSource defecto [/defaultauthdb] en, o admin en si authSource [/defaultauthdb] no se especifican ni ni.

El siguiente ejemplo de cadena de conexión establece la base de datos por defecto 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://

Un prefijo requerido para identificar que esto es una string en el formato de conexión estándar (mongodb://) o en el formato de conexión SRV (mongodb+srv://). Para aprender más sobre cada formato, vea Formato estándar de cadena de conexión y Formato de conexión SRV.

username:password@

Opcional. Credenciales de autenticación.

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

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 está ejecutando la instancia mongod (o la instancia mongos 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 sea apropiado para su topología de implementación:

  • Para un autónomo, especifique el nombre de host de la instancia autónoma mongod.

  • Para un set de réplicas, especifica el/los nombre(s) de host de la(s) instancia(s) de mongod tal como se indica en la configuración del set de 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 por defecto 27017.

Si utilizas el formato de conexión URI SRV, sólo puedes 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 de DNS.

/defaultauthdb

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

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 en admin en el registro DNS de TXT. Para obtener más información sobre cómo conectarse a las implementaciones de Atlas, consulta Conéctate 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