Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
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 elementos:

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, estos caracteres deberán convertirse usando 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 particionado, especifica el/los nombre(s) de host de la/las instancia(s) de mongos.

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 tanto authSource como defaultauthdb no se especifican, el cliente intentará autenticar al usuario especificado en la base de datos admin. Para obtener más información, consulte authSource.

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. Un string del query que especifica las opciones específicas de conexión como pares <name>=<value>. Consulta Opciones de 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 utilizar la lista de nodos iniciales DNS, utiliza la sintaxis de la cadena de conexión estándar con un prefijo mongodb+srv en lugar del estándar mongodb. El +srv indica al cliente que el nombre de host que sigue corresponde a un registro SRV de DNS. El driver o mongosh query el DNS para obtener el registro y utiliza ese registro para determinar qué hosts ejecutan las instancias mongod o mongos.

Nota

El modificador de la cadena de conexión +srv establece automáticamente tls, o la opción equivalente ssl, en true. Para anular este comportamiento, configure explícitamente tls o ssl en false en la string del query de conexión.

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

Marcador de posición
Ejemplo

<hostname>

server

<domain>

example

<TLD>

com

<hostname>.<domain>.<TLD>

server.example.com

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

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 DNS SRV y las opciones especificadas en el registro TXT se resuelven en la siguiente cadena de conexión con formato estándar:

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

Para sobrescribir las opciones del registro TXT, se debe especificar la opción en el string del query. 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 opción mongodb+srv falla si no hay un DNS disponible con registros que correspondan al nombre de host identificado en la cadena de conexión. Si se utiliza el modificador de cadena de conexión +srv, la opción tls (o la opción equivalente ssl) se configura como true para la conexión. Para anular este comportamiento, configure explícitamente tls o ssl en false en el string del query de conexión.

Para conectar mongosh a un conjunto de réplicas utilizando el formato de lista de semillas DNS, consulte 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]]

Puedes especificar una base de datos por defecto en el campo [/defaultauthdb] de la cadena de conexión. mongosh utiliza la base de datos [/defaultauthdb] especificada como base de datos por defecto. Si no especificas una base de datos predeterminada en la cadena de conexión, MongoDB utiliza la base de datos test como predeterminada.

Nota

Solo mongosh utiliza [/defaultauthdb] como la base de datos por defecto. Otras herramientas de MongoDB, como los controladores, no utilizan este campo para establecer la base de datos por defecto.

Puedes especificar la base de datos de autenticación en tu cadena de conexión usando la opción de conexión authSource. Si se especifica, el cliente utiliza esta base de datos para verificar su identidad y credenciales. Si no se especifica, authSource se asigna por defecto a [/defaultauthdb], o admin si tanto authSource como [/defaultauthdb] no se especifican.

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 elementos:

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 particionado, especifica el/los nombre(s) de host de la/las instancia(s) de mongos.

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 tanto authSource como defaultauthdb no se especifican, el cliente intentará autenticar al usuario especificado en la base de datos admin. Para obtener más información, consulte authSource.

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. Un string del query que especifica las opciones específicas de conexión como pares <name>=<value>. Consulta Opciones de 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 obtener más ejemplos de cadenas de conexión, consulte Cadenas de conexión.

Volver

opciones

En esta página