Puede especificar la cadena de conexión de MongoDB utilizando uno de los siguientes formatos:
Formato de conexión SRV: Una cadena de conexión con un nombre de host que corresponde a un registro DNS SRV. Tu driver o
mongoshconsulta el registro para determinar qué hosts están ejecutando el Instancias demongodomongos.Formato estándar de cadena de conexión: Una cadena de conexión que especifica todos los hosts que ejecutan las
mongodo lasmongosinstancias.
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.
Formato de conexión SRV
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]]
Componentes de la cadena de conexión
Una cadena de conexión incluye los siguientes elementos:
Componente | Descripción | |
|---|---|---|
| Un prefijo requerido para identificar que esto es una string en el formato de conexión estándar ( | |
| Opcional. Credenciales de autenticación. Si se especifica, el cliente intentará autenticar al usuario en el 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 | |
| El host (y el número de puerto opcional) donde se está ejecutando la instancia
Si no se especifica el número de puerto, se utiliza el puerto por defecto 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 | |
| opcional. La base de datos de autenticación que se utilizará si la cadena de conexión incluye Si tanto IMPORTANTE: Para las implementaciones de Atlas que utilizan el formato de conexión SRV, | |
| opcional. Un string del query que especifica las opciones específicas de conexión como pares Si la cadena de conexión no especifica una base de datos, debes especificar una barra diagonal ( |
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
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 |
|---|---|
|
|
|
|
|
|
|
|
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:
replicaSetauthSource
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.
Formato estándar de cadena de conexión
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]]
Opciones de la base de datos de la cadena de conexión
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
Componentes de la cadena de conexión
Una cadena de conexión incluye los siguientes elementos:
Componente | Descripción | |
|---|---|---|
| Un prefijo requerido para identificar que esto es una string en el formato de conexión estándar ( | |
| Opcional. Credenciales de autenticación. Si se especifica, el cliente intentará autenticar al usuario en el Si el nombre de usuario o la contraseña incluye los siguientes caracteres, deben convertirse mediante la codificación porcentual: Consulte también | |
| El host (y el número de puerto opcional) donde se está ejecutando la instancia
Si no se especifica el número de puerto, se utiliza el puerto por defecto 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 | |
| opcional. La base de datos de autenticación que se utilizará si la cadena de conexión incluye Si tanto IMPORTANTE: Para las implementaciones de Atlas que utilizan el formato de conexión SRV, | |
| opcional. Un string del query que especifica las opciones específicas de conexión como pares Si la cadena de conexión no especifica una base de datos, debes especificar una barra diagonal ( |
Obtén más información
Para obtener más ejemplos de cadenas de conexión, consulte Cadenas de conexión.