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.
Requisitos previos
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.
Versiones compatibles de MongoDB
Puedes utilizar el MongoDB Shell para conectarte a la versión 7.0 de MongoDB o superior.
Instalar mongosh
Estos procedimientos presuponen que ya ha instalado mongosh. Para obtener más información sobre la instalación de mongosh, consulte
Instala mongosh.
Conéctese a una implementación de MongoDB Atlas
Es posible conectarse directamente a la implementación de MongoDB Atlas desde el shell.
Obtenga su cadena de conexión de Atlas
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.
Configurar las credenciales de la base de datos
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.
Conectarse a MongoDB Atlas con mongosh
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.
Conéctate a una implementación local en el puerto por defecto
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"
Conectarse a una implementación local en un puerto no por defecto
Para especificar un puerto al que conectarse en localhost, puede usar cualquiera de:
Una cadena de conexión con el puerto elegido
La opción de línea de comandos
--port
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
Conéctate a una implementación en un host remoto
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
--hosty--port. Si omites la opción--port,mongoshutiliza 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 opciones de conexión
Especifica distintas opciones de conexión para conectarte a varios tipos de implementaciones.
Conéctese con autenticación
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 aplicar la autenticación en una implementación, consulta Habilitar el control de acceso.
Para otorgar acceso a una implementación de MongoDB, consulta Usuarios de base de datos.
Conéctese con OpenID Connect
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
Conéctese con LDAP
Para conectarte a un despliegue usando LDAP:
Establece
--usernamecomo un nombre de usuario que respete elsecurity.ldap.authz.queryTemplateo cualquier plantillasecurity.ldap.userToDNMappingconfigurada.Establezca
--passworden la contraseña adecuada. Si no especifica la contraseña para la opción de línea de comandos--password,mongoshle solicitará la contraseña.Configurar
--authenticationDatabasea$external. El argumento$externaldebe ir entre comillas simples, no comillas dobles, para evitar que el shell interprete$externalcomo una variable.Configurar
--authenticationMechanismaPLAIN.
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
Conectarse a un set de réplicas
Posibilidades para conectarse a un set de réplicas:
Utiliza el Formato de conexión de la lista de nodos iniciales de DNS.
Especifica explícitamente el nombre del set de réplicas y los nodos en la cadena de conexión.
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.
Opción 1: Formato de lista de nodos iniciales DNS
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.
Opción 2: Especificar los nodos en la cadena de conexión
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
replicaSetestá 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.
Conectar usando TLS
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
+srvestablece automáticamente la opcióntlscomotruepara la conexión.Por ejemplo, para conectarse a un set de réplicas definido por una lista de nodos iniciales DNS con
tlshabilitado, ejecutar el siguiente comando:mongosh "mongodb+srv://server.example.com/" Configura la opción
--tlsatrueen la cadena de conexión.Por ejemplo, para habilitar
tlscon 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
--tlsen la línea de comandos.Por ejemplo, para conectarse a un host remoto con
tlsactivado, ejecute el siguiente comando:mongosh "mongodb://mongodb0.example.com:28015" --tls
Conéctese a una base de datos específica
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
Configuración del proxy
Para establecer una conexión con las configuraciones de proxy, utiliza las siguientes variables de entorno:
Variable | Descripción | Ejemplo | |
|---|---|---|---|
| Conexiones proxy a las URLs | En el siguiente ejemplo se establece la variable de entorno | |
| Conexiones proxy a URLs Si también estableces | El siguiente ejemplo configura la variable de entorno | |
| Conexiones proxy a Si también estableces | En el siguiente ejemplo se configura la variable de entorno | |
| Redirige todas las conexiones a la URL especificada. | El siguiente ejemplo configura la variable de entorno | |
| 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 |
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
Conéctate a una implementación diferente
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.
Verifique la conexión actual
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.
Desconectarse de una implementación
Para desconectarse de una implementación y salir de mongosh, realiza una de las siguientes acciones:
Escriba
.exit,exitoexit().Escriba
quitoquit().Presione
Ctrl+D.Presiona
Ctrl+Cdos veces.
Implementaciones no auténticas
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.
Limitaciones
La autenticación Kerberos no permite
authMechanismProperties=CANONICALIZE_HOST_NAME:true|falseen la cadena de conexión. En su lugar, utiliza:authMechanismProperties=CANONICALIZE_HOST_NAME:forwardauthMechanismProperties=CANONICALIZE_HOST_NAME:forwardAndReverseauthMechanismProperties=CANONICALIZE_HOST_NAME:none
mongoshactualmente solo admite el compresorzlib. No se admiten los siguientes compresores:zstdsnappy
A partir de la versión
mongosh2.0.0:Para valores booleanos en cadenas de conexión:
debe usar
trueofalse.no puede usar
1,y,yesoten vez detrue.no se puede usar
-1,0,n,noofen lugar defalse.