Docs Menu
Docs Home
/ /

Conéctese a una implementación

Esta página muestra cómo usar MongoDB Shell para conectarse a una implementación de MongoDB. Puede conectarse a una Implementación alojada en lanube de MongoDB Atlas, conéctese a una implementación local o conéctese a otro host remoto con MongoDB Shell.

Para usar MongoDB Shell, debe tener una implementación de MongoDB a la que conectarse.

  • Para una implementación gratuita alojada en la nube, puedes usar MongoDB Atlas.

  • Para aprender a ejecutar una implementación local de MongoDB, consulta Instalar MongoDB.

Puedes utilizar el MongoDB Shell para conectarte a la versión 7.0 de MongoDB o superior.

Estos procedimientos presuponen que ya ha instalado mongosh. Para obtener más información sobre la instalación de mongosh, consulte Instala mongosh.

Es posible conectarse directamente a la implementación de MongoDB Atlas desde el shell.

1

Necesita una cadena de conexión de Atlas para conectarse desde MongoDB Shell. Puede obtener la cadena de conexión de Atlas en la interfaz de usuario de Atlas.

Consulta la guía Encontrar la cadena de conexión de MongoDB Atlas para obtener detalles.

2

Si aún no se ha creado un usuario de base de datos, se debe establecer un nombre de usuario y una contraseña. Para poder conectarse a Atlas, se debe pasar el nombre de usuario con la cadena de conexión de Atlas. Después de emitir el comando de conexión, el shell pide la contraseña.

3

Para establecer la conexión, se debe ejecutar el comando mongosh con la cadena de conexión y las opciones para establecer la conexión.

La cadena de conexión incluye los siguientes elementos:

  • El nombre de clúster

  • Datos encriptados

  • Un indicador para la versión de la API

  • Una bandera para el nombre de usuario que desea usar para conectar

Se asemeja al siguiente string:

mongosh "mongodb+srv://YOUR_CLUSTER_NAME.YOUR_HASH.mongodb.net/" --apiVersion YOUR_API_VERSION --username YOUR_USERNAME

Nota

Obtén más información

Se pueden usar otras opciones de seguridad de conexión para conectarse a Atlas mediante mongosh. Para obtener información sobre cómo conectarse con una IP privada para emparejamiento o una conexión de nodos privados, consulta la documentación Atlas Connect a través de mongosh.

Para conectarte a una implementación de MongoDB que se ejecute en localhost con puerto por defecto 27017, ejecuta mongosh sin ninguna opción:

mongosh

Esto es equivalente al siguiente comando:

mongosh "mongodb://localhost:27017"

Para especificar un puerto al que conectarse en localhost, puede usar cualquiera de:

Por ejemplo, los siguientes comandos se conectan a una implementación que se ejecuta en el puerto 28015 de localhost:

mongosh "mongodb://localhost:28015"
mongosh --port 28015

Para especificar un host y puerto remotos, puedes usar cualquiera de los siguientes:

  • Una cadena de conexión con el host y el puerto elegidos.

  • Las opciones de línea de comandos --host y --port. Si omites la opción --port, mongosh utiliza el puerto por defecto 27017.

Por ejemplo, los siguientes comandos se conectan a una implementación de MongoDB que se ejecuta en el host mongodb0.example.com y en el puerto 28015:

mongosh "mongodb://mongodb0.example.com:28015"
mongosh --host mongodb0.example.com --port 28015

Nota

Conéctese a MongoDB Atlas

Si el host remoto es un clúster de Atlas, se puede copiar la cadena de conexión desde la interfaz de usuario de Atlas. Para obtener más información, consulta Conectar a un clúster en la documentación de Atlas.

Especifica distintas opciones de conexión para conectarte a varios tipos de implementaciones.

Para conectarse a una implementación de MongoDB que requiera autenticación, utilizar las opciones --username y --authenticationDatabase. mongosh le solicita una contraseña, que se oculta mientras se escribe.

Por ejemplo, para autenticarse como el usuario alice en la base de datos admin, ejecute el siguiente comando:

mongosh "mongodb://mongodb0.example.com:28015" --username alice --authenticationDatabase admin

Para otorgar una contraseña como parte del comando de conexión en lugar de usar la indicación, se debe usar la opción --password. Utiliza esta opción para el uso programático de mongosh, como un controlador.

Tip

Para conectarse a una implementación usando OpenID Connect, se debe utilizar la opción --authenticationMechanism y configurarla como MONGODB-OIDC. mongosh redirige a un navegador donde se introduce la información para iniciar sesión del proveedor de identidad.

Nota

Por defecto, mongosh solicita los ámbitos oidc y offline_access al proveedor de identidad (proveedor de identidad). Si el proveedor de identidad no ofrece soporte ni oidc ni offline_access, mongosh no hace una solicitud de esos alcances. Si el IdP soporta oidc pero no offline_access, debe volver a autenticarse con frecuencia. Para obtener más información, consulta los campos oidcIdentityProviders.

Por ejemplo, lo siguiente se conecta a una implementación local usando MONGODB-OIDC:

mongosh "mongodb://localhost/" --authenticationMechanism MONGODB-OIDC

Para conectarte a un despliegue usando LDAP:

Advertencia

Cuando utilices contraseñas de un solo uso con la autenticación LDAP, se recomienda añadir las opciones de la cadena de conexión maxPoolSize=1&srvMaxHosts=1 a tu cadena de conexión para reducir la posibilidad de fallos en la conexión.

Incluya el --host y --port de la implementación de MongoDB, junto con cualquier otra opción relevante para su implementación.

Por ejemplo, la siguiente operación se autentica en una implementación de MongoDB que se ejecuta con autenticación y autorización LDAP:

mongosh --username alice@dba.example.com --password --authenticationDatabase '$external' --authenticationMechanism "PLAIN" --host "mongodb.example.com" --port 27017

Posibilidades para conectarse a un set de réplicas:

Importante

Cuando un set de réplicas se ejecuta en Docker, se podría exponer solo un punto final de MongoDB. En este caso, el set de réplicas no es detectable, y especificar directConnection=false puede impedir que la aplicación se conecte a él.

En un entorno de prueba o desarrollo, se puede realizar la conexión al set de réplicas especificando directConnection=true en la URI de conexión. En un entorno de producción, recomendamos configurar el clúster para que cada instancia de MongoDB sea accesible fuera de la red virtual de Docker.

Para usar el formato de conexión de la lista de nodos iniciales DNS, debe incluirse el modificador +srv en la cadena de conexión.

Por ejemplo, para conectar a un set de réplicas en server.example.com, ejecuta el siguiente comando:

mongosh "mongodb+srv://server.example.com/"

Nota

+srv Comportamiento TLS

Cuando se usa el modificador de cadena de conexión +srv, MongoDB establece automáticamente la opción de conexión --tls a true. Para anular este comportamiento, configurar --tls en false.

Se pueden especificar nodos individuales del set de réplicas en la cadena de conexión.

Por ejemplo, para conectarse a un set de réplicas de tres nodos llamado replA, ejecutar el siguiente comando:

mongosh "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"

Nota

Parámetro directConnection añadido automáticamente

Cuando especifiques nodos individuales del set de réplicas en la cadena de conexión, mongosh añade automáticamente el parámetro directConnection=true, a menos que al menos una de las siguientes condiciones sea verdadera:

  • El parámetro de query replicaSet está presente en la cadena de conexión.

  • La cadena de conexión utiliza el formato de cadena de conexión mongodb+srv://.

  • La cadena de conexión contiene una lista de nodos iniciales con múltiples hosts.

  • La cadena de conexión ya contiene un parámetro directConnection.

Cuando directConnection=true, el host especificado en el URI de conexión ejecuta todas las operaciones y mongosh ignora todas las preferencias de lectura, incluidas las preferencias establecidas explícitamente.

Para conectarte a una implementación usando TLS, puedes:

  • Utiliza el Formato de conexión de la lista de nodos iniciales de DNS. El modificador de la cadena de conexión +srv establece automáticamente la opción tls como true para la conexión.

    Por ejemplo, para conectarse a un set de réplicas definido por una lista de nodos iniciales DNS con tls habilitado, ejecutar el siguiente comando:

    mongosh "mongodb+srv://server.example.com/"
  • Configura la opción --tls a true en la cadena de conexión.

    Por ejemplo, para habilitar tls con una opción de cadena de conexión, ejecutar el siguiente comando:

    mongosh "mongodb://mongodb0.example.com:28015/?tls=true"
  • Especificar la opción de --tls en la línea de comandos.

    Por ejemplo, para conectarse a un host remoto con tls activado, ejecute el siguiente comando:

    mongosh "mongodb://mongodb0.example.com:28015" --tls

Para conectarse a una determinada base de datos por defecto, se debe especificar una base de datos en la ruta del URI de la cadena de conexión. Si no se especifica en la cadena de conexión, la base de datos por defecto es la base de datos test.

Por ejemplo, para conectarse a una base de datos llamada qa en localhost, ejecute el siguiente comando:

mongosh "mongodb://localhost:27017/qa"

Se puede especificar la base de datos de autenticación en la cadena de conexión utilizando la opción de conexión authSource. Si se especifica, el cliente utiliza esta base de datos para verificar su identidad de usuario y sus credenciales. Si authSource no se especifica, se establece en la base de datos especificada por defecto en la cadena de conexión. Si tanto authSource como la base de datos por defecto no están especificados, authSource utiliza por defecto la base de datos admin.

La siguiente 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

Para establecer una conexión con las configuraciones de proxy, utiliza las siguientes variables de entorno:

Variable
Descripción
Ejemplo

MONGODB_PROXY

Conexiones proxy a las URLs mongodb:// y mongodb+srv://, así como los clústeres de bases de datos.

En el siguiente ejemplo se establece la variable de entorno MONGODB_PROXY para redirigir todas las conexiones de MongoDB a través de un proxy CONNECT ubicado en example.com:8080 con TLS habilitado.

export MONGODB_PROXY=https://example.com:8080

HTTP_PROXY

Conexiones proxy a URLs http://. Las conexiones HTTP se utilizan principalmente para la autenticación de OIDC.

Si también estableces HTTPS_PROXY, el valor de HTTPS_PROXY tiene prioridad para todas las solicitudes.

El siguiente ejemplo configura la variable de entorno HTTP_PROXY para que actúe como proxy de las conexiones HTTP a través de un proxy CONNECT ubicado en example.com:8080:

export HTTP_PROXY=http://example.com:8080

HTTPS_PROXY

Conexiones proxy a https:// URLs. Las conexiones HTTPS se utilizan principalmente para la autenticación de OIDC.

Si también estableces HTTP_PROXY, el valor de HTTPS_PROXY tiene prioridad para todas las solicitudes.

En el siguiente ejemplo se configura la variable de entorno HTTPS_PROXY para redirigir todas las conexiones HTTPS a través de un proxy CONNECT ubicado en localhost:8080 sin TLS:

export HTTPS_PROXY=http://localhost:8080

ALL_PROXY

Redirige todas las conexiones a la URL especificada.

El siguiente ejemplo configura la variable de entorno ALL_PROXY para canalizar todas las conexiones de red salientes a través de un proxy Socks5 ubicado en example.com:1234 con credenciales incluidas en la URL:

export ALL_PROXY=socks5://username:password@example.com:1234

NO_PROXY

Lista separada por comas de nombres de host que deben excluirse del uso de proxy.

En el siguiente ejemplo se configura la variable de entorno NO_PROXY para omitir el proxy en las conexiones a localhost y internal-db.example.com.

export NO_PROXY=localhost,internal-db.example.com

Nota

mongosh admite los siguientes tipos de proxy:

  • Socks5 proxies

  • Proxies HTTP

  • Conectar proxies

  • PAC URLs que se resuelven en uno de los proxies listados anteriormente

Si ya se estableció la conexión a una implementación en el MongoDB Shell, se puede usar el método Mongo() o el método connect() para conectarse a una implementación diferente desde el MongoDB Shell.

Para aprender a conectarse a una implementación diferente usando estos métodos, consulte Abra una nueva conexión.

Para verificar la conexión actual a la base de datos, utiliza el método db.getMongo().

El método devuelve el URI de la cadena de conexión para la conexión actual.

Para desconectarse de una implementación y salir de mongosh, realiza una de las siguientes acciones:

  • Escriba .exit, exit o exit().

  • Escriba quit o quit().

  • Presione Ctrl + D.

  • Presiona Ctrl + C dos veces.

El shell muestra un mensaje de advertencia cuando se conecta a instancias de MongoDB no genuinas. Las instancias no genuinas pueden comportarse de manera diferente a las instancias oficiales de MongoDB debido a características que faltan, son inconsistentes o están incompletas.

  • La autenticación Kerberos no permite authMechanismProperties=CANONICALIZE_HOST_NAME:true|false en la cadena de conexión. En su lugar, utiliza:

    • authMechanismProperties=CANONICALIZE_HOST_NAME:forward

    • authMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverse

    • authMechanismProperties=CANONICALIZE_HOST_NAME:none

  • mongosh actualmente solo admite el compresor zlib. No se admiten los siguientes compresores:

    • zstd

    • snappy

  • A partir de la versión mongosh 2.0.0:

    Para valores booleanos en cadenas de conexión:

    • debe usar true o false.

    • no puede usar 1, y, yes o t en vez de true.

    • no se puede usar -1, 0, n, no o f en lugar de false.

Volver

Verifica los paquetes de Windows