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 SRV de DNS. Su controlador o
mongoshConsulta el registro para determinar qué hosts están ejecutando el Instancias demongodomongos.Formato de cadena de conexión estándar: una cadena de conexión que especifica todos los hosts que ejecutan las instancias
mongodmongoso.
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 componentes:
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 incluyen los siguientes caracteres, dichos caracteres deben convertirse utilizando codificación de porcentaje: 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 IMPORTANTE: Para las implementaciones de Atlas que utilizan el formato de conexión SRV, | |
| Opcional. Una cadena de consulta que especifica las opciones específicas de la conexión como Si la cadena de conexión no especifica una base de datos, debes especificar una barra diagonal ( |
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
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 |
|---|---|
|
|
|
|
|
|
|
|
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:
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 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.
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
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
Componentes de la cadena de conexión
Una cadena de conexión incluye los siguientes componentes:
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 IMPORTANTE: Para las implementaciones de Atlas que utilizan el formato de conexión SRV, | |
| Opcional. Una cadena de consulta que especifica las opciones específicas de la conexión como Si la cadena de conexión no especifica una base de datos, debes especificar una barra diagonal ( |
Obtén más información
Para ver más ejemplos de cadenas de conexión, consulte Cadenas de conexión.