Utilice las siguientes opciones para ver y controlar diversos aspectos de su MongoDB Shell.
Opciones Generales
--build-infoDevuelve un documento en formato JSON con información sobre la compilación
mongoshy las dependencias del driver.Ejemplo: Ver información de compilación
Se puede verificar la información de compilación y las dependencias de los drivers del binario
mongoshejecutando 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
--evalo múltiples argumentos--evaljuntos.Después de que
mongoshevalúa el argumento--eval, imprime los resultados en la línea de comandos. Si se usan varias instrucciones--eval,mongoshsolo imprime los resultados de la última--eval.Puedes usar la
--jsonbandera con--evalpara devolvermongoshresultados en formato JSON extendido.mongosh--json=canonical--json=relaxedadmite los modos y. Si omites el modo,mongoshusa por defecto elcanonicalmodo. La--jsonbandera es mutuamente excluyente--shellcon.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
EJSONtiene opciones de formato con funcionalidad incorporada que pueden eliminar la necesidad de un analizador comojq. 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.
--no-quietDeshabilita el
--quietmodo de opción predeterminado para sesiones de shell no interactivas. Cuando se especifica,mongoshmuestra todos los mensajes durante el inicio.
--norcImpide que el shell cargue y evalúe
~/.mongoshrc.jsal iniciar.--norcTambién impide que el intérprete de comandos cargue los fragmentos de código que hayas instalado con elsnippet installcomando. En su lugar, puedes cargarlos con elsnippet load-allcomando. Consulta la sección Comandos de fragmentos de código para obtener más información.
--quietOmite 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 habilita
--quietde forma predeterminada. Puede deshabilitar este comportamiento--no-quietusando.
--skipStartupWarningsImpide
mongoshque muestre advertencias de inicio del servidor al crear una sesión. Para suprimir todos los mensajes de inicio, utilice la--quietopción.
--shellHabilita la interfaz de línea de comandos. Si invoca el comando
mongoshy especifica un archivo JavaScript como argumento, o utiliza--evalpara especificar JavaScript en la línea de comandos, la opción--shellproporciona al usuario un indicador de línea de comandos una vez finalizada la ejecución del archivo. La opción--shelles mutuamente excluyente con--json.
Opciones de Stable API
--apiVersion <version number>Especifica la
"1"versión de la API. Actualmente, es el único valor admitido.
--apiStrictEspecifica que el servidor responderá con APIStrictError si la aplicación utiliza un comando o comportamiento fuera de la Stable API.
Si especifica, también
--apiStrictdebe--apiVersionespecificar.
--apiDeprecationErrorsEspecifica que el servidor responderá con APIDeprecationError si su aplicación utiliza un comando o comportamiento que está obsoleto en el
apiVersionespecificado.Si especifica, también
--apiDeprecationErrorsdebe--apiVersionespecificar.
Opciones de conexión
--host <hostname>Especifica el nombre de la máquina host donde
mongodmongosse ejecuta o. Si no se especifica, la consola de MongoDB intenta conectarse a un proceso de MongoDB que se ejecuta en el host local.- Para conectarte a un set de réplicas,
Especifique los y una lista semilla de miembros del conjunto. Utilice el siguiente
replica set nameformato:<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> - Para conexiones TLS/SSL (
--tls), - El intérprete de comandos de MongoDB verifica que el nombre de host (especificado en la
--hostopción o en la cadena de conexión) coincida con elSAN(o, siSANel no está presente, conCNel) del certificado presentado por elmongodo el. SimongoselSANestá presente, el intérprete de comandos de MongoDB no lo comparaCNcon el. Si el nombre de host no coincide con elSAN(oCNel), el intérprete de comandos de MongoDB no logra conectarse.
- Para las conexiones de la lista de nodos iniciales de DNS,
Especifica el protocolo de conexión como
mongodb+srv, seguido del registro de nombre de host DNS SRV y de cualquier opción. Las opcionesauthSourceyreplicaSet, si se incluyen en la cadena de conexión, anulan cualquier opción configurada por DNS correspondiente en el registro TXT. El uso de la cadena de conexiónmongodb+srv:activa implícitamente TLS (normalmente configurado contls=true) para la conexión del cliente. La opción TLS se puede desactivar configurandotls=falseen la string del query.Ejemplo
mongodb+srv://server.example.com/?connectionTimeoutMS=3000
--port <port>Especifica el puerto donde la
mongodinstancia o está escuchando. Si nomongos--portse27017especifica, MongoDB Shell intenta conectarse al puerto.
Opciones de TLS
--tlsPermite la conexión a un
mongodo a unmongosque tenga habilitado el soporte de TLS.Para aprender más sobre TLS/SSL y MongoDB, consulta:
--tlsCertificateKeyFile <filename>Especifica el archivo
.pemque contiene tanto el certificado TLS como la clave paramongosh. Especifique el nombre del archivo.pemmediante rutas relativas o absolutas.Esta opción es necesaria al usar la opción para
--tlsconectarse a una instanciamongodomongosque requiere certificados de cliente. Es decir, la consola de MongoDB presenta este certificado al servidor.Nota
Para aprender más sobre TLS/SSL y MongoDB, consulta:
--tlsCertificateKeyFilePassword <value>Especifica la contraseña para descifrar el archivo de clave de certificado (es
--tlsCertificateKeyFiledecir,).Utilice la opción únicamente si el archivo de clave de certificado está cifrado. En todos los casos, la consola de MongoDB oculta la contraseña en todos los registros e informes.
--tlsCertificateKeyFilePasswordSi la clave privada en el archivo PEM está cifrada y no especifica la opción, la consola de MongoDB le pedirá una frase de
--tlsCertificateKeyFilePasswordcontraseña.Consultar la frase de contraseña del certificado TLS/SSL.
Para aprender más sobre TLS/SSL y MongoDB, consulta:
--tlsCAFile <filename>Especifica el
.pemarchivo que contiene la cadena de certificados raíz de la Autoridad de Certificación. Este archivo se utiliza para validar el certificado presentado por la instanciamongodmongos/.Especifica el nombre del archivo
.pemutilizando rutas relativas o absolutas.Para aprender más sobre TLS/SSL y MongoDB, consulta:
--tlsCRLFile <filename>Especifica el archivo
.pemque contiene la Lista de revocación de certificados. Especifica el nombre del archivo.pemcon rutas relativas o absolutas.Para aprender más sobre TLS/SSL y MongoDB, consulta:
--tlsAllowInvalidHostnamesDeshabilita la validación de los nombres de host en el certificado presentado por la
mongodmongosinstancia /. 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:
--tlsAllowInvalidCertificatesNuevo en la versión 4.2.
Omite las comprobaciones de validación de los certificados presentados por la instancia
mongod/ y permite conexiones a servidores que presentan certificados no válidos.mongosNota
A partir de MongoDB 4.0, si especifica
--tlsAllowInvalidCertificatesal utilizar la autenticación x.509, un certificado no válido es suficiente solo para establecer una conexión TLS, pero es insuficiente para la autenticación.Advertencia
Aunque esté disponible, evite usar la
--tlsAllowInvalidCertificatesopción si es posible. Si--tlsAllowInvalidCertificateses necesario usar, utilice esta opción únicamente en sistemas donde no sea posible la intrusión.Si la consola de MongoDB (y otras conexiones a un conjunto de réplicas con TLS habilitado) se ejecuta con la opción
--tlsAllowInvalidCertificates, no intenta validar los certificados del servidor. Esto crea una vulnerabilidad ante certificadosmongodymongoscaducados, así como ante procesos externos que se hacen pasar por instancias válidas demongodomongos. Si solo necesita deshabilitar la validación del nombre de host en los certificados TLS, consulte--tlsAllowInvalidHostnames.Para aprender más sobre TLS/SSL y MongoDB, consulta:
--tlsCertificateSelector <parameter>=<value>Disponible en Windows y macOS como alternativa
--tlsCertificateKeyFilea.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.

Las
--tlsCertificateKeyFileopciones y son mutuamente excluyentes. Solo puede especificar una.--tlsCertificateSelectorEspecifica una propiedad de certificado para seleccionar un certificado coincidente de los almacenes de certificados del sistema operativo.
--tlsCertificateSelectoracepta un argumento del formato<property>=<value>donde la propiedad puede ser una de las siguientes:PropiedadTipo de valorDescripciónsubjectstring ASCII
Nombre del sujeto o nombre común en el certificado
thumbprintcadena hexadecimal
Una secuencia de bytes, expresada en hexadecimal, utilizada para identificar una llave pública mediante su resumen SHA-1.
El
thumbprinta veces se conoce comofingerprint.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.
--tlsDisabledProtocols <string>Desactiva protocolos TLS especificados. La opción reconoce los siguientes protocolos:
TLS1_0TLS1_1TLS1_2(A partir de la versión 4.0.4, 3.6.9, 3.4.24)
TLS1_3En macOS, no puede desactivar
TLS1_1y dejar ambosTLS1_0yTLS1_2activados. 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 4.0 versión, MongoDB desactiva el uso de TLS 1.0 si TLS 1.1o superior está disponible en el sistema. Para habilitar TLS,1.0 especifique
noneentre--tlsDisabledProtocolsy.
--tlsUseSystemCAPermite
mongoshque cargue certificados TLS ya disponibles en la autoridad de certificación del sistema operativo sin especificarlos explícitamente al intérprete de comandos. No se puede desactivar este comportamiento.--tlsUseSystemCAaún se puede configurar para compatibilidad con versiones anteriores, pero no tiene ningún efecto.Nota
Esta bandera se aplica tanto a las conexiones de MongoDB como a las conexiones de los proveedores de identidad OIDC.
Opciones de autenticación
--authenticationDatabase <dbname>Especifica la base de datos de autenticación donde
--usernamese ha creado el especificado. Consulte Base de datos de autenticación.Si no especifica un valor para, la consola de MongoDB utiliza la base de datos especificada en la cadena de
--authenticationDatabaseconexión.
--authenticationMechanism <name>Especifica el mecanismo de autenticación que usa MongoDB Shell para autenticarse en o. Si no especifica
mongodmongosunauthenticationMechanismpero proporciona credenciales de usuario, MongoDB Shell y los controladores intentan usar SCRAM-SHA-.256 Si esto falla, recurren a SCRAM-SHA-.1ValorDescripciónMecanismo de autenticación de respuesta de desafío con sal estándarRFC que utiliza la 5802 1 función hash SHA-.
Mecanismo de autenticación de respuesta de desafío con sal estándarRFC que utiliza la 7677 256 función hash SHA-.
Se debe establecer featureCompatibilityVersion en
4.0.Autenticación de certificados MongoDB TLS.
GSSAPI (Kerberos)
Autenticación externa mediante Kerberos. Este mecanismo solo está disponible en MongoDB Enterprise.
PLAIN (SASL LDAP)
Autenticación externa mediante LDAP. También puede utilizar
PLAINpara autenticar a los usuarios de base de datos.PLAINtransmite las contraseñas en texto sin cifrar. 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.
--gssapiServiceNameEspecifique el nombre del servicio usando GSSAPI/Kerberos. Solo es necesario si el servicio no usa el nombre
mongodbpredeterminado.Esta opción solo está disponible en MongoDB Enterprise.
--sspiHostnameCanonicalization <string>Especifica si se debe utilizar la canonicalización de nombres de host.
--sspiHostnameCanonicalizationtiene el mismo efecto que establecer elCANONICALIZE_HOST_NAME:true|falsepar de claves en la parte de laauthMechanismPropertiescadenade conexión.Si se establece
--sspiHostnameCanonicalizationen:forwardAndReverse, realiza una búsqueda directa de DNS y luego una búsqueda inversa. Nuevo enmongosh1.3.0.forward, el efecto es el mismo que al configurarauthMechanismProperties=CANONICALIZE_HOST_NAME:true.none, el efecto es el mismo que al configurarauthMechanismProperties=CANONICALIZE_HOST_NAME:false.
--oidcFlowsEspecifica los flujos de OpenID Connect en una lista separada por comas. Los flujos de OpenID Connect especifican la interacción de
mongoshcon el proveedor de identidad para el proceso de autenticación.mongoshadmite los siguientes flujos de OpenID Connect:Flujo de OpenID ConnectDescripciónauth-codePor defecto.
mongoshabre un navegador y hace el redireccionamiento a la pantalla para iniciar sesión del proveedor de identidad.device-authmongoshte 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 cuandomongoshse ejecuta en un entorno en el que no se puede abrir un navegador.Para establecer
device-authcomo opción de respaldo paraauth-code, consulta el siguiente ejemplo:mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
--oidcDumpTokensEspecifica si
mongoshimprime tokens con información extra de depuración. Utiliza esta opción solo para fines de depuración.La opción
--oidcDumpTokensacepta los siguientes valores:ValorDescripciónredactedPor defecto cuando solo se configura
--oidcDumpTokens. Imprime la información de depuración de tokens con los datos sensibles redactados.include-secretsImprime 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-secretsexpone 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 demongoshy las credenciales sean necesarias para fines de diagnóstico.
--oidcIdTokenAsAccessTokenEspecifica si
mongoshutiliza el token de ID recibido del proveedor de identidad en lugar del token de acceso. Utilice esta opción con proveedores de identidad que no pueda configurar para proporcionar tokens de acceso JWT.
--oidcNoNoncePor defecto,
mongoshenvía un parámetro nonce durante el flujo de código de autorización de OIDC.Si se establece la opción
--oidcNoNonce,mongoshno 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.
--oidcRedirectUriEspecifica 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.
--oidcTrustedEndpointIndica 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.
--browserEspecifica el navegador al que
mongoshredirige cuandoMONGODB-OIDCestá activado.Esta opción se ejecuta con el shell del sistema.
Establece
--no-browserpara desactivar la apertura de navegadores por completo.
--password <password>, -p <password>Especifica una contraseña para autenticarse en una base de datos MongoDB que utiliza autenticación. Úsela junto con las opciones
--username--authenticationDatabasey.Para forzar a MongoDB Shell a solicitar una contraseña, ingrese la opción como última opción y omita el
--passwordargumento.
--username <username>, -u <username>Especifica un nombre de usuario para autenticarse en una base de datos MongoDB que utiliza autenticación. Úselo junto con las opciones
--password--authenticationDatabasey.
Opciones de sesión
--retryWritesActiva Escrituras reintentables.
Por defecto, las escrituras reintentables son:
activado en
mongoshdesactivado en el shell
mongoheredado
Para deshabilitar las escrituras reintentables,
--retryWrites=falseuse.Para obtener más información sobre las sesiones, consulta Sesiones de cliente y garantías de coherencia causal.
Opciones de cifrado a nivel de campo
--cryptSharedLibPath <string>Nuevo en la versión 8.2.
Ruta a la biblioteca compartida de cifrado automático. La biblioteca debe ser 8 la2 versión..0 o superior. Es necesario para usar el cifrado automático en la
mongoshsesión de shell.
--awsAccessKeyId <string>Una clave de acceso de AWS asociada a un usuario de IAM que tiene
ListReadpermisos y para el Servicio de administración de claves de AWS (KMS).mongoshutiliza el especificado--awsAccessKeyIdpara acceder al KMS.--awsAccessKeyIdes necesario para habilitar el cifrado de nivel de campo del lado del cliente para la sesión de shellmongosh.--awsAccessKeyIdrequiere las dos opciones de línea de comandos siguientes:Si se omite,
--awsAccessKeyIdMongo()utilice el constructor dentro de la sesión de shell para habilitar el cifrado de nivel de campo del lado del cliente.Para mitigar el riesgo de que las claves de acceso se filtren en los registros, considere especificar una variable de entorno
--awsAccessKeyIdpara.
--awsSecretAccessKey <string>Una clave secreta de AWS asociada a la
--awsAccessKeyIdespecificada.--awsSecretAccessKeyes necesario para habilitar el cifrado de nivel de campo del lado del cliente para la sesiónmongosh.--awsSecretAccessKeyrequiere las dos opciones de línea de comandos siguientes:Si se omiten y
--awsSecretAccessKeyMongo()sus opciones de soporte, utilice dentro de la sesión de shell para habilitar el cifrado de nivel de campo del lado del cliente.Para mitigar el riesgo de que las claves de acceso se filtren en los registros, considere especificar una variable de entorno
--awsSecretAccessKeypara.
--awsSessionToken <string>Un token de sesión de AWS asociado al
--awsAccessKeyIdespecificado.--awsSessionTokenes necesario para habilitar el cifrado de nivel de campo del lado del cliente para la sesión de shellmongosh.--awsSessionTokenrequiere todas las siguientes opciones de línea de comandos:Si se omiten y
--awsSessionTokenMongo()sus opciones de soporte, utilice dentro de la sesión de shell para habilitar el cifrado de nivel de campo del lado del cliente.Para mitigar el riesgo de que las claves de acceso se filtren en los registros, considere especificar una variable de entorno
--awsSessionTokenpara.
--keyVaultNamespace <string>El espacio de nombres completo
<database>.<collection>() de la colección utilizada como almacén de claves para el cifrado de campo del lado del cliente. es necesario para habilitar el cifrado--keyVaultNamespacemongoshde campo del lado del cliente paramongoshla sesión de shell. crea el espacio de nombres especificado si no existe.--keyVaultNamespacerequiere ambas opciones de línea de comandos siguientes:Si se omiten
--keyVaultNamespaceMongo()y sus opciones de soporte, utilice el constructor dentro de la sesión de shell para habilitar el cifrado de nivel de campo del lado del cliente.