Docs Menu
Docs Home
/ /

opciones

Utilice las siguientes opciones para ver y controlar diversos aspectos de su MongoDB Shell.

--build-info

Devuelve un documento con formato JSON con información sobre su mongosh Dependencias de compilación y controlador.

Ejemplo: Ver información de compilación

Se puede verificar la información de compilación y las dependencias de los drivers del binario mongosh ejecutando el siguiente comando desde el terminal:

mongosh --build-info

Este comando devuelve el siguiente documento en formato JSON:

{
version: '1.10.1',
distributionKind: 'packaged',
buildArch: 'x64',
buildPlatform: 'linux',
buildTarget: 'unknown',
buildTime: '2023-06-21T09:49:37.225Z',
gitVersion: '05ad91b4dd40382a13f27abe1ae8c3f9f52a38f7',
nodeVersion: 'v16.20.1',
opensslVersion: '3.1.1',
sharedOpenssl: true,
runtimeArch: 'x64',
runtimePlatform: 'darwin',
deps: {
nodeDriverVersion: '5.6.0'
}
}
--eval <javascript>

Evalúa una expresión de JavaScript. Puedes usar un único argumento --eval o múltiples argumentos --eval juntos.

Después de que mongosh evalúa el argumento --eval, imprime los resultados en la línea de comandos. Si se usan varias instrucciones --eval, mongosh solo imprime los resultados de la última --eval.

Puede utilizar la bandera --json con --eval para devolver mongosh resultados en Formato JSON extendido. mongosh admite --json=canonical --json=relaxed los modos y. Si se omite el modo, mongosh usa el canonical modo por defecto. El --json indicador es mutuamente excluyente --shell con.

Ejemplo: Formato de salida

Para obtener una salida adecuada para el análisis automatizado, utiliza EJSON.stringify().

mongosh --quiet --host rs0/centos1104 --port 27500 \
--eval "EJSON.stringify(rs.status().members.map( \
m => ({'id':m._id, 'name':m.name, 'stateStr':m.stateStr})));" \
| jq

Después de analizar con jq, el resultado se asemeja a esto:

[
{
"id": 0,
"name": "centos1104:27500",
"stateStr": "PRIMARY"
},
{
"id": 1,
"name": "centos1104:27502",
"stateStr": "SECONDARY"
},
{
"id": 2,
"name": "centos1104:27503",
"stateStr": "SECONDARY"
}
]

Nota

EJSON tiene opciones de formato con funcionalidad incorporada que pueden eliminar la necesidad de un analizador como jq. Por ejemplo, el siguiente código produce una salida que tiene el mismo formato que la anterior.

mongosh --quiet --host rs0/centos1104 --port 27500 \
--eval "EJSON.stringify( rs.status().members.map( \
({ _id, name, stateStr }) => ({ _id, name, stateStr })), null, 2);"

Ejemplo: Múltiples argumentos --eval

Para obtener una lista de colecciones en el moviesDatabase, utiliza varias instrucciones --eval:

mongosh --quiet \
--eval 'use moviesDatabase' \
--eval 'show collections' \
mongodb://localhost/

Ejemplo: opción --json

Para devolver estadísticas sobre una colección en formato JSON extendido utilizando varias instrucciones --eval:

mongosh --quiet --json=relaxed \
--eval 'use <database-name>' \
--eval 'db.<collection>.stats()' \
mongodb://localhost/
--file, -f <javascript>

Ejecuta un script desde la línea de comandos sin entrar en la consola de MongoDB Shell.

Para obtener más detalles y un ejemplo, consulta Ejecutar un script desde la línea de comandos.

--help, -h

Devuelve información sobre las opciones y el uso del MongoDB Shell.

--nodb

Impide que el shell se conecte a cualquier instancia de base de datos.

--no-quiet

Desactiva la opción --quiet por defecto para sesiones de shell no interactivas. Cuando se especifica, mongosh muestra todos los mensajes durante el inicio.

--norc

Impide que el shell cargue y evalúe ~/.mongoshrc.js al iniciar.

--quiet

Omite todos los mensajes durante el inicio (como los mensajes de bienvenida y las advertencias de inicio) y va directamente al prompt.

Para sesiones de shell no interactivas, MongoDB activa --quiet por defecto. Puedes desactivar este comportamiento usando --no-quiet.

--skipStartupWarnings

Evita que mongosh muestre advertencias de inicio del servidor al crear una sesión. Para suprimir todos los mensajes de inicio, utiliza la opción --quiet.

--shell

Activa la interfaz de shell. Si ejecutas el comando mongosh y especificas un archivo JavaScript como argumento, o utilizas --eval para especificar JavaScript en la línea de comandos, la opción --shell proporciona al usuario un indicador de shell después de que el archivo termine de ejecutarse. El indicador --shell es mutuamente excluyente con --json.

--verbose

Incrementa el nivel de verbosidad de la salida del shell durante el proceso de conexión y al ejecutar comandos.

--version

Devuelve el número de versión de MongoDB Shell.

--apiVersion <version number>

Especifica la apiVersion. "1" es actualmente el único valor compatible.

--apiStrict

Especifica que el servidor responderá con APIStrictError si la aplicación utiliza un comando o comportamiento fuera de la Stable API.

Si se especifica --apiStrict, también debe especificar --apiVersion.

--apiDeprecationErrors

Especifica que el servidor responderá con APIDeprecationError si la aplicación utiliza un comando o comportamiento que está desactualizado en el apiVersion especificado.

Si se especifica --apiDeprecationErrors, también debe especificar --apiVersion.

--host <hostname>

Especifica el nombre de la máquina host donde el mongod o mongos se está ejecutando. Si esto no se especifica, MongoDB Shell intenta conectarse a un proceso de MongoDB que se ejecuta en el localhost.

Para conectarte a un set de réplicas,

Especifica el replica set name y una lista de nodos iniciales del set. Utiliza el siguiente formulario:

<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
Para las conexiones TLS/SSL (--tls),
El MongoDB Shell verifica que el nombre de host (especificado en la opción --host o en la cadena de conexión) coincida con el SAN (o, si SAN no está presente, el CN) en el certificado presentado por mongod o mongos. Si SAN está presente, MongoDB Shell no compara CN. Si el nombre de host no coincide con el SAN (o el CN), el shell de MongoDB Shell no se puede conectar.
Para las conexiones de la lista de nodos iniciales de DNS,

Especifique el protocolo de conexión como mongodb+srv, seguido del registro de nombre de host DNS SRV y cualquier opción. Las opciones authSource y replicaSet, si se incluyen en la cadena de conexión, anulan cualquier opción DNS correspondiente configurada en el registro TXT. El uso de la cadena de conexión mongodb+srv: habilita implícitamente TLS/SSL (normalmente configurado tls=true con) para la conexión del cliente. La opción TLS se puede desactivar configurando tls=false en la cadena de consulta.

Ejemplo

mongodb+srv://server.example.com/?connectionTimeoutMS=3000
--port <port>

Especifique el puerto donde la mongod o mongos instancia está escuchando. Si --port no se especifica, MongoDB Shell intenta conectarse al puerto 27017.

--tls

Permite la conexión a un mongod o mongos que tenga activado el soporte de TLS / SSL.

Para aprender más sobre TLS/SSL y MongoDB, consulta:

--tlsCertificateKeyFile <filename>

Especifica el archivo .pem que contiene tanto el certificado TLS / SSL como la clave para mongosh. Especifica el nombre del archivo .pem utilizando rutas relativas o absolutas.

Esta opción es obligatoria cuando se utiliza la opción --tls para conectarse a una instancia mongod o mongos que requiere certificados de cliente. Es decir, MongoDB Shell presenta este certificado al servidor.

Nota

A partir de la versión 4.4, mongod / mongos registra una advertencia en la conexión si el certificado X.509 presentado caduca transcurridos 30 días a partir de la hora del sistema host mongod/mongos.

Para aprender más sobre TLS/SSL y MongoDB, consulta:

--tlsCertificateKeyFilePassword <value>

Especifica la contraseña para descifrar el archivo de clave del certificado (es decir, --tlsCertificateKeyFile).

Utiliza la opción --tlsCertificateKeyFilePassword solo si el archivo de clave del certificado está cifrado. En todos los casos, el MongoDB Shell elimina la contraseña de todos los registros y reportes de salida.

Si la llave privada del archivo PEM está --tlsCertificateKeyFilePassword y no especifica la opción cifrada; MongoDB Shell solicitará una frase de contraseña.

Consulta la frase de contraseña del certificado TLS/SSL.

Para aprender más sobre TLS/SSL y MongoDB, consulta:

--tlsCAFile <filename>

Especifique el archivo .pem que contiene la cadena de certificados raíz de la Autoridad Certificadora. Este archivo se utiliza para validar el certificado presentado por la instancia mongod / mongos.

Especifica el nombre del archivo .pem utilizando rutas relativas o absolutas.

Para aprender más sobre TLS/SSL y MongoDB, consulta:

--tlsCRLFile <filename>

Especifica el archivo .pem que contiene la Lista de revocación de certificados. Especifica el nombre del archivo .pem con rutas relativas o absolutas.

Para aprender más sobre TLS/SSL y MongoDB, consulta:

--tlsAllowInvalidHostnames

Desactiva la validación de los nombres de host en el certificado presentado por la instancia mongod / mongos. Permite que MongoDB Shell se conecte a instancias de MongoDB incluso si el nombre de host en los certificados del servidor no coincide con el host del servidor.

Para aprender más sobre TLS/SSL y MongoDB, consulta:

--tlsAllowInvalidCertificates

Nuevo en la versión 4.2.

Omite las comprobaciones de validación de los certificados presentados por la instancia mongod / mongos y permite conexiones a servidores que presentan certificados inválidos.

Nota

A partir de MongoDB 4.0, si especifica --tlsAllowInvalidCertificates al usar la autenticación x.509, un certificado no válido es suficiente solo para establecer una conexión TLS / SSL, pero es insuficiente para la autenticación.

Advertencia

Aunque esté disponible, evita usar la opción--tlsAllowInvalidCertificates si es posible. Si es necesario el uso de --tlsAllowInvalidCertificates, utiliza la opción solo en sistemas donde no sea posible la intrusión.

Si el shell de MongoDB Shell (y otras herramientas de MongoDB) se ejecuta con la opción --tlsAllowInvalidCertificates, el shell (y otras herramientas de MongoDB) no intentan validar los certificados del servidor. Esto crea una vulnerabilidad a certificados mongod y mongos caducados, así como a procesos externos que se hagan pasar por instancias válidas de mongod o mongos. Si solo necesitas desactivar la validación del nombre de host en los certificados TLS / SSL, consulta --tlsAllowInvalidHostnames.

Para aprender más sobre TLS/SSL y MongoDB, consulta:

--tlsCertificateSelector <parameter>=<value>

Disponible en Windows y macOS como alternativa a --tlsCertificateKeyFile.

Importante

Windows e importación de llaves privadas

Cuando importes la llave privada, se debe marcar como exportable. El Asistente para importar certificados de Windows no selecciona esta opción por defecto.

Asistente de Importación de Certificados de Microsoft donde la clave está marcada como exportable

Las opciones --tlsCertificateKeyFile y --tlsCertificateSelector son mutuamente excluyentes. Solo puedes especificar uno.

Especifica una propiedad de certificado para seleccionar un certificado coincidente de los almacenes de certificados del sistema operativo.

--tlsCertificateSelector acepta un argumento en el formato <property>=<value> donde la propiedad puede ser una de las siguientes:

Propiedad
Tipo de valor
Descripción

subject

string ASCII

Nombre del sujeto o nombre común en el certificado

thumbprint

cadena hexadecimal

Una secuencia de bytes, expresada en hexadecimal, utilizada para identificar una llave pública mediante su resumen SHA-1.

El thumbprint a veces se conoce como fingerprint.

Al utilizar el almacén de certificados SSL del sistema, se emplea OCSP (Protocolo de estado de certificados en línea) para validar el estado de revocación de los certificados.

Nota

A partir de la versión 4.4, mongod / mongos registra una advertencia en la conexión si el certificado X.509 presentado caduca transcurridos 30 días a partir de la hora del sistema host mongod/mongos.

--tlsDisabledProtocols <string>

Desactiva protocolos TLS especificados. La opción reconoce los siguientes protocolos:

  • TLS1_0

  • TLS1_1

  • TLS1_2

  • (A partir de la versión 4.0.4, 3.6.9, 3.4.24) TLS1_3

  • En macOS, no puede desactivarTLS1_1 y dejar ambos TLS1_0 y TLS1_2 activados. También debes desactivar al menos uno de los otros dos; por ejemplo, TLS1_0,TLS1_1.

  • Para enumerar varios protocolos, especifíquelos como una lista de protocolos separados por comas. Por ejemplo TLS1_0,TLS1_1.

  • Los protocolos deshabilitados especificados anulan cualquier protocolo deshabilitado por defecto.

A partir de la versión 4.0, MongoDB desactiva el uso de TLS 1.0 si TLS 1.1+ está disponible en el sistema. Para activar el TLS desactivado 1.0, especifica none en --tlsDisabledProtocols.

--tlsUseSystemCA

Permite a mongosh cargar certificados TLS ya disponibles para la autoridad de certificación del sistema operativo sin especificar explícitamente los certificados al shell. No puedes desactivar este comportamiento. --tlsUseSystemCA aún se puede establecer para compatibilidad retroactiva, pero no tiene efecto.

Nota

Esta bandera se aplica tanto a las conexiones de MongoDB como a las conexiones de los proveedores de identidad OIDC.

--authenticationDatabase <dbname>

Especifica la base de datos de autenticación donde se ha creado el --username especificado. Consultar la base de datos de autenticación.

Si no especifica un valor para --authenticationDatabase, MongoDB Shell utiliza la base de datos especificada en la cadena de conexión.

--authenticationMechanism <name>

Especifica el mecanismo de autenticación que utiliza MongoDB Shell para autenticarse en el mongod o en el mongos. Si no especificas un authenticationMechanism pero proporcionas las credenciales de usuario, MongoDB Shell y los controladores intentarán usar SCRAM-SHA-256. Si esto falla, recurren a SCRAM-SHA-1.

Valor
Descripción

RFC 7677 estándar del mecanismo de autenticación de respuesta a desafío salado utilizando la función de hash SHA-256.

Se debe establecer featureCompatibilityVersion en 4.0.

Autenticación de certificados TLS / SSL de MongoDB.

GSSAPI (Kerberos)

Autenticación externa utilizando Kerberos. Este mecanismo está disponible solo en MongoDB Enterprise.

PLAIN (SASL LDAP)

Autenticación externa mediante LDAP. También puedes utilizar PLAIN para autenticar a los usuarios de base de datos. PLAIN transmite contraseñas en texto sin formato. Este mecanismo está disponible en MongoDB Enterprise y MongoDB Atlas.

MONGODB-OIDC (OpenID Connect)

Autenticación externa utilizando OpenID Connect. Este mecanismo está disponible en MongoDB Enterprise y MongoDB Atlas.

MONGODB-AWS (AWS IAM)

Autenticación externa mediante credenciales de Amazon Web Services Identity and Access Management (AWS IAM). Este mecanismo está disponible en MongoDB Enterprise y MongoDB Atlas.

--gssapiServiceName

Especifica el nombre del servicio mediante GSSAPI/Kerberos. Solo es necesario si el servicio no utiliza el nombre por defecto de mongodb.

Esta opción solo está disponible en MongoDB Enterprise.

--sspiHostnameCanonicalization <string>

Especifica si se debe utilizar la canonicalización de nombres de host.

--sspiHostnameCanonicalization tiene el mismo efecto que establecer el par de claves CANONICALIZE_HOST_NAME:true|false en la sección authMechanismProperties de la cadena de conexión.

Si --sspiHostnameCanonicalization se establece en:

  • forwardAndReverse, realiza una búsqueda directa de DNS y luego una búsqueda inversa. Nuevo en mongosh 1.3.0.

  • forward, el efecto es el mismo que al configurar authMechanismProperties=CANONICALIZE_HOST_NAME:true.

  • none, el efecto es el mismo que al configurar authMechanismProperties=CANONICALIZE_HOST_NAME:false.

--oidcFlows

Especifica los flujos de OpenID Connect en una lista separada por comas. Los flujos de OpenID Connect especifican la interacción de mongosh con el proveedor de identidad para el proceso de autenticación. mongosh admite los siguientes flujos de OpenID Connect:

Flujo de OpenID Connect
Descripción

auth-code

Por defecto. mongosh abre un navegador y hace el redireccionamiento a la pantalla para iniciar sesión del proveedor de identidad.

device-auth

mongosh te proporciona una URL y un código para completar la autenticación. Esto se considera un flujo de OpenID Connect menos seguro, pero se puede utilizar cuando mongosh se ejecuta en un entorno en el que no se puede abrir un navegador.

Para establecer device-auth como opción de respaldo para auth-code, consulta el siguiente ejemplo:

mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
--oidcDumpTokens

Especifica si mongosh imprime tokens con información extra de depuración. Utiliza esta opción solo para fines de depuración.

La opción --oidcDumpTokens acepta los siguientes valores:

Valor
Descripción

redacted

Por defecto cuando solo se configura --oidcDumpTokens. Imprime la información de depuración de tokens con los datos sensibles redactados.

include-secrets

Imprime información de depuración de tokens, incluidas las credenciales que podrían autenticar potencialmente a los servidores de bases de datos.

Importante

El valor include-secrets expone credenciales que los atacantes pueden usar para la autenticación. Utilice esta opción solo cuando las personas no autorizadas no puedan ver el resultado de mongosh y las credenciales sean necesarias para fines de diagnóstico.

--oidcIdTokenAsAccessToken

Especifica si mongosh utiliza el token de ID recibido del proveedor de identidad en lugar del token de acceso. Utiliza esta opción con proveedores de identidad que no puedas configurar para proporcionar tokens de acceso JWT.

--oidcNoNonce

Por defecto, mongosh envía un parámetro nonce durante el flujo de código de autorización de OIDC.

Si se establece la opción --oidcNoNonce, mongosh no envía un parámetro nonce. Se debe usar esta opción si el proveedor de identidad no admite valores nonce como parte de la autorización.

--oidcRedirectUri

Especifica una URI donde el proveedor de identidad redirige después de la autenticación. La URI debe coincidir con la configuración del proveedor de identidad. El valor es por defecto http://localhost:27097/redirect.

--oidcTrustedEndpoint

Indica que la conexión actual es a un punto final confiable que no es Atlas ni localhost. Esto asegura que los tokens de acceso sean enviados al servidor. Se debe usar esta opción solo cuando se realice la conexión a servidores en los que se confíe.

--browser

Especifica el navegador al que mongosh redirige cuando MONGODB-OIDC está activado.

Esta opción se ejecuta con el shell del sistema.

Establece --no-browser para desactivar la apertura de navegadores por completo.

--password <password>, -p <password>

Especifica una contraseña con la que autenticarse en una base de datos de MongoDB que utiliza autenticación. Utiliza en conjunto con las --username y --authenticationDatabase opciones.

Para forzar que MongoDB Shell solicite una contraseña, introduce la opción --password como última opción y omite el argumento.

--username <username>, -u <username>

Especifica un nombre de usuario con el cual autenticarte en una base de datos MongoDB que utiliza autenticación. Utilízalo en conjunto con las --password y --authenticationDatabase opciones.

--retryWrites

Activa Escrituras reintentables.

Por defecto, las escrituras reintentables son:

  • activado en mongosh

  • desactivado en el shell mongo heredado

Para desactivar las escrituras reintentables, utiliza --retryWrites=false.

Para obtener más información sobre las sesiones, consulta Sesiones de cliente y garantías de coherencia causal.

--cryptSharedLibPath <string>

Nuevo en la versión 8.2.

La ruta a la Biblioteca compartida de cifrado automático. La biblioteca debe ser versión 8.2.0 o superior. Es necesario utilizar el cifrado automático para la sesión del shell mongosh.

--awsAccessKeyId <string>

Una clave de acceso de AWS asociada con un usuario de IAM que tiene permisos List y Read para el Key Management Service (KMS) de AWS. mongosh utiliza el --awsAccessKeyId especificado para acceder al KMS.

--awsAccessKeyId es necesario para activar el cifrado a nivel de campo del lado del cliente para la sesión de shell de mongosh. --awsAccessKeyId requiere ambas de las siguientes opciones de línea de comandos:

Si se omite --awsAccessKeyId, utiliza el constructor Mongo() dentro de la sesión de shell para activar el cifrado a nivel de campo del lado del cliente.

Para mitigar el riesgo de filtración de claves de acceso en los registros, considera especificar una variable de entorno para --awsAccessKeyId.

--awsSecretAccessKey <string>

Una clave secreta de AWS asociada al --awsAccessKeyId especificado.

Se requiere --awsSecretAccessKey para activar el cifrado a nivel de campo del lado del cliente para la sesión de mongosh. --awsSecretAccessKey requiere ambas de las siguientes opciones de línea de comandos:

Si --awsSecretAccessKey y tus opciones de soporte se omiten, utiliza Mongo() dentro de la sesión del shell para activar el cifrado a nivel de campo del lado del cliente.

Para mitigar el riesgo de filtración de claves de acceso en los registros, considera especificar una variable de entorno para --awsSecretAccessKey.

--awsSessionToken <string>

Un Token de sesión de AWS asociado a la --awsAccessKeyIdespecificada.

--awsSessionToken es necesario para activar el cifrado a nivel de campo del lado del cliente para la sesión de shell de mongosh. --awsSessionToken requiere todas las siguientes opciones de línea de comandos:

Si --awsSessionToken y tus opciones de soporte se omiten, utiliza Mongo() dentro de la sesión del shell para activar el cifrado a nivel de campo del lado del cliente.

Para mitigar el riesgo de filtración de claves de acceso en los registros, considera especificar una variable de entorno para --awsSessionToken.

--keyVaultNamespace <string>

El namespace completo (<database>.<collection>) de la colección utilizada como almacén de claves para el cifrado a nivel de campo del lado del cliente. Se requiere --keyVaultNamespace para activar el cifrado a nivel de campo del lado del cliente para la sesión de shell mongosh. mongosh crea el namespace especificado si no existe.

--keyVaultNamespace requiere ambas de las siguientes opciones de línea de comandos:

Si --keyVaultNamespace y sus opciones de soporte se omiten, utiliza el constructor Mongo() dentro de la sesión de shell para activar el cifrado a nivel de campo del lado del cliente.

Volver

Archivo de configuración .mongoshrc

En esta página