Use as seguintes opções para visualizar e controlar vários aspectos do seu MongoDB Shell.
Opções gerais
--build-infoRetorna um documento formatado em JSON com informações sobre suas dependências de compilação e driver
mongosh.Exemplo: visualizar informações de compilação
Você pode verificar as informações de compilação e as dependências do driver do seu binário
mongoshexecutando o seguinte comando no seu terminal:mongosh --build-info Este comando retorna o seguinte documento formatado em 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>Avalia uma expressão JavaScript. Você pode usar um único argumento
--evalou múltiplos argumentos--evaljuntos.Após o
mongoshavaliar o argumento--eval, ele imprime os resultados para sua linha de comando. Se você usar várias instruções--eval,mongoshimprimirá somente os resultados do último--eval.Você pode usar a sinalização
--jsoncom--evalpara retornar resultadosmongoshno formato Extended JSON. Omongoshé compatível com os modos--json=canonicale--json=relaxed. Se você omitir o modo,mongoshassumirá como padrão o modocanonical. A sinalização--jsoné mutuamente exclusiva com--shell.Exemplo: Formatar saída
Para obter uma saída adequada para análise automatizada, use
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 Após analisar com
jq, a saída se assemelha a isto:[ { "id": 0, "name": "centos1104:27500", "stateStr": "PRIMARY" }, { "id": 1, "name": "centos1104:27502", "stateStr": "SECONDARY" }, { "id": 2, "name": "centos1104:27503", "stateStr": "SECONDARY" } ] Observação
EJSONcriou opções de formatação que podem eliminar a necessidade de um analisador comojq. Por exemplo, o código a seguir produz uma saída formatada da mesma forma que a anterior.mongosh --quiet --host rs0/centos1104 --port 27500 \ --eval "EJSON.stringify( rs.status().members.map( \ ({ _id, name, stateStr }) => ({ _id, name, stateStr })), null, 2);" Exemplo: vários argumentos --eval
Para obter uma lista de coleções no
moviesDatabase, utilize múltiplas declarações do--eval:mongosh --quiet \ --eval 'use moviesDatabase' \ --eval 'show collections' \ mongodb://localhost/ Exemplo: opção --json
Para retornar estatísticas sobre uma coleção no formato JSON estendido usando múltiplas instruções
--eval:mongosh --quiet --json=relaxed \ --eval 'use <database-name>' \ --eval 'db.<collection>.stats()' \ mongodb://localhost/
--file, -f <javascript>Executa um roteiro da linha de comando sem inserir o console do MongoDB Shell.
Para obter detalhes adicionais e um exemplo, consulte Executar um roteiro a partir da linha de comando.
--no-quietDesabilita o
--quietmodo de opção padrão para sessões de shell não interativas. Quando especificado, omongoshexibe todas as mensagens durante a inicialização.
--norcImpede que o shell forneça e avalie
~/.mongoshrc.jsna inicialização.--norctambém impede que o shell carregue quaisquer trechos de código que você instalou com o comandosnippet install. Em vez disso, você pode carregar trechos de código com o comandosnippet load-all. Consulte Comandos de trecho de código para obter mais informações.
--quietIgnora todas as mensagens durante a inicialização (como mensagens de boas-vindas e avisos de inicialização) e vai diretamente para o prompt.
Para sessões de shell não interativas, o MongoDB habilita o
--quietpor padrão. Você pode desativar esse comportamento--no-quietusando.
--skipStartupWarningsImpede
mongoshque exiba avisos de inicialização do servidor ao criar uma sessão. Para suprimir todas as mensagens de inicialização, use a--quietopção.
--shellHabilita a interface shell. Se você invocar o comando
mongoshe especificar um arquivo JavaScript como um argumento, ou utilizar--evalpara especificar JavaScript na linha de comando, a opção--shellfornecerá ao usuário um prompt de shell após o arquivo finalizar a execução. A bandeira--shellé mutuamente exclusiva com--json.
Opções de API estáveis
--apiVersion <version number>Especifica a apiVersion.
"1"é atualmente o único valor suportado.
--apiStrictEspecifica que o servidor responderá com APIStrictError se seu aplicativo utilizar um comando ou comportamento fora da API estável.
Ao especificar, você também
--apiStrictdeverá--apiVersionespecificar.
--apiDeprecationErrorsEspecifica que o servidor responderá com APIDeprecationError se seu aplicação utilizar um comando ou comportamento que é preterido no
apiVersionespecificado.Ao especificar, você também
--apiDeprecationErrorsdeverá--apiVersionespecificar.
Opções de conexão
--host <hostname>Especifica o nome da máquina host onde o
mongodoumongosestá sendo executado. Se isso não for especificado, o MongoDB Shell tentará se conectar a um processo MongoDB em execução no localhost.- Para se conectar a um conjunto de réplicas,
Especifique o e uma lista de sementes dos membros do conjunto. Use o seguinte
replica set nameformulário:<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> - Para conexões TLS/SSL (
--tls), - O MongoDB Shell verifica se o hostname (especificado na ou na ) corresponde
--hostaoSAN(ou, seSANnão estiver presente, aoCN) nomongodpelo oumongos. SeSANestiver presente, o MongoDB Shell não corresponderá aoCN. Se o nome do host não corresponder aoSAN(ouCN), o shell do MongoDB Shell não conseguirá se conectar.
- Para conexões de lista de seeds DNS,
Especifique o protocolo de conexão como
mongodb+srv, seguido pelo registro do nome de host DNS SRV e quaisquer opções. As opçõesauthSourceereplicaSet, se incluídas na string de conexão, substituem quaisquer opções correspondentes configuradas pelo DNS definidas no registro TXT. O uso da string de conexãomongodb+srv:ativa implicitamente o TLS (normalmente definido comtls=true) para a conexão do cliente . A opção TLS pode ser desativada configurando otls=falsena string de query.Exemplo
mongodb+srv://server.example.com/?connectionTimeoutMS=3000
--port <port>Especifica a porta em que a instância
mongodoumongosestá escutando. Se--portnão for especificado, o MongoDB Shell tentará se conectar à porta27017.
Opções de TLS
--tlsPermite a conexão com um
mongodoumongosque tenha suporte a TLS habilitado.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsCertificateKeyFile <filename>Especifica o arquivo
.pemque contém o certificado e a chave TLS paramongosh. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Esta opção é exigida ao utilizar a opção
--tlspara conectar a uma instância domongodoumongosque exige certificados de cliente . Ou seja, o MongoDB Shell apresenta este certificado ao servidor.Observação
A partir da 4.4 versão,
mongod/ registra um aviso na conexão semongoso509 certificado X. apresentado expirar dentro de30dias a partir da hora domongod/mongossistema host.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsCertificateKeyFilePassword <value>Especifica a senha para descriptografar o arquivo de chave de certificado (ou seja,
--tlsCertificateKeyFile).Utilize a opção
--tlsCertificateKeyFilePasswordsomente se o arquivo da chave de certificado for codificado. Em todos os casos, o MongoDB Shell edita a senha de todos os resultados de geração de registros e relatórios.Se a chave privada no arquivo PEM estiver criptografada e você não especificar a opção; o MongoDB Shell solicita uma
--tlsCertificateKeyFilePasswordsenha.Consulte Senha do Certificado TLS/SSL.
Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsCAFile <filename>Especifica o arquivo
.pemque contém a sequência de certificados raiz da autoridade de certificação. Este arquivo é utilizado para validar o certificado apresentado pela instânciamongod/mongos.Especifique o nome do arquivo
.pemusando caminhos relativos ou absolutos.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsCRLFile <filename>Especifica o arquivo
.pemque contém a lista de certificados revogados. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsAllowInvalidHostnamesDesabilita a validação dos nomes de host no certificado apresentado pela
mongodmongosinstância /. Permite que o MongoDB Shell se conecte a instâncias do MongoDB mesmo que o nome do host nos certificados do servidor não corresponda ao host do servidor.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsAllowInvalidCertificatesNovidades na versão 4.2.
Ignora as verificações de validação para os certificados apresentados pela instância
mongod/ e permite conexões para servidores que apresentam certificadosmongosinválidos.Observação
Começando no MongoDB 4.0, se você especificar
--tlsAllowInvalidCertificatesao usar x.509 autenticação, um certificado inválido só será suficiente para estabelecer uma conexão TLS, e será insuficiente para a autenticação.Aviso
Embora disponível, evite utilizar a opção se possível.
--tlsAllowInvalidCertificates--tlsAllowInvalidCertificatesSe o uso de for necessário, use a opção somente em sistemas em que a intrusão não seja possível.Se o shell do MongoDB Shell (e outros conectar a um conjunto de réplicas habilitado para TLS ) for executado com a opção
--tlsAllowInvalidCertificates, o shell (e outros conectar a um conjunto de réplicas habilitado para TLS) não tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificadosmongodemongosexpirados, bem como para processos externos que se fazem passar por instânciasmongodoumongosválidas. Se você só precisar desabilitar a validação do nome de host nos certificados TLS, consulte--tlsAllowInvalidHostnames.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsCertificateSelector <parameter>=<value>Disponível no Windows e macOS como uma alternativa
--tlsCertificateKeyFileao.Importante
Windows e importação de chaves privadas
Ao importar sua chave privada, você deve marcá-la como exportável. O Assistente de Importação de Certificado do Windows não seleciona esta opção por padrão.

As
--tlsCertificateKeyFileopções e são mutuamente exclusivas. Você só pode especificar uma.--tlsCertificateSelectorEspecifica uma propriedade de certificado para selecionar um certificado correspondente do armazenamento de certificados do sistema operacional.
--tlsCertificateSelectoraceita um argumento do formato<property>=<value>onde a propriedade pode ser uma das seguintes:PropriedadeTipo de valorDescriçãosubjectstring ASCII
Nome do assunto ou nome comum no certificado
thumbprintstring hexadecimal
Uma sequência de bytes, expressa em hexadecimal usada para identificar uma chave pública pelo seu resumo SHA-1.
O
thumbprintàs vezes é denominadofingerprint.Ao usar o armazenamento de certificados SSL do sistema, o OCSP (Online Certificate Status Protocol) é usado para validar o status de revogação dos certificados.
--tlsDisabledProtocols <string>Desabilita os protocolos TLS especificados. A opção reconhece os seguintes protocolos:
TLS1_0TLS1_1TLS1_2(A partir da versão 4.0.4, 3.6.9, 3.4.24)
TLS1_3No macOS, você não pode desativar
TLS1_1e deixarTLS1_0eTLS1_2ativados. Você também deve desativar pelo menos um dos outros dois; por exemplo,TLS1_0,TLS1_1.Para listar vários protocolos, especifique uma lista de protocolos separados por vírgula. Por exemplo
TLS1_0,TLS1_1.Os protocolos desabilitados especificados substituem qualquer protocolo padrão desabilitado.
A partir da 4.0 versão, o MongoDB desabilita o uso do TLS 1.0 se 1.1o TLS + estiver disponível no sistema. Para habilitar o TLS 1.0 desabilitado, especifique
none--tlsDisabledProtocolspara.
--tlsUseSystemCAPermite
mongoshao carregar certificados TLS já disponíveis para a autoridade de certificação do sistema operacional sem especificar explicitamente os certificados para o shell. Você não pode desativar esse comportamento.--tlsUseSystemCAainda pode ser definido para compatibilidade com versões anteriores, mas não tem efeito.Observação
Esse sinalizador se aplica às conexões do MongoDB e às conexões do provedor de identidade OIDC.
Opções de autenticação
--authenticationDatabase <dbname>Especifica o banco de dados de autenticação onde o especificado
--usernamefoi criado. Consulte Banco de Dados de Autenticação.Se você não especificar um valor para, o MongoDB Shell utilizará o banco de dados especificado na string de
--authenticationDatabaseconexão.
--authenticationMechanism <name>Especifica o mecanismo de autenticação que o MongoDB Shell usa para autenticar no ou. Se você não especificar
mongodmongosum,authenticationMechanismmas fornecer credenciais de usuário, o MongoDB Shell e os drivers tentarão usar SCRAM-SHA-.256 Se isso falhar, eles voltarão para SCRAM-SHA-.1ValorDescriçãoRFC 5802 Mecanismo de Autenticação de Resposta de Desafio Salted padrão usando a1 função de hash SHA-.
RFC 7677 Mecanismo de Autenticação de Resposta de Desafio Salted padrão usando a256 função de hash SHA-.
Exige featureCompatibilityVersion definido para
4.0.Autenticação do certificado TLS do MongoDB .
GSSAPI (Kerberos)
Autenticação externa usando Kerberos. Esse mecanismo está disponível somente no MongoDB Enterprise.
PLAIN (LDAP SASL)
Autenticação externa usando LDAP. Você também pode utilizar o
PLAINpara autenticar usuários de banco de dados.PLAINtransmite senhas em texto simples. Este mecanismo está disponível em MongoDB Enterprise e MongoDB Atlas.MONGODB-OIDC (OpenID connect)
Autenticação externa usando OpenID Connect. Este mecanismo está disponível em MongoDB Enterprise e MongoDB Atlas.
MONGODB-AWS(Amazon Web Services IAM)Autenticação externa usando credenciais do Amazon Web Services Identity and Access Management (Amazon Web Services IAM). Este mecanismo está disponível em MongoDB Enterprise e MongoDB Atlas.
--gssapiServiceNameEspecifique o nome do serviço utilizando GSSAPI/Kerberos. Obrigatório apenas se o serviço não usar o nome
mongodbpadrão.Esta opção está disponível apenas no MongoDB Enterprise.
--sspiHostnameCanonicalization <string>Especifica se deseja ou não usar a Canonicalização de nome de host.
--sspiHostnameCanonicalizationtem o mesmo efeito que definir oCANONICALIZE_HOST_NAME:true|falsepar de chaves na parte daauthMechanismPropertiesstringde conexão.--sspiHostnameCanonicalizationSe estiver definido como:forwardAndReverse, realiza uma pesquisa direta de DNS e, em seguida, uma pesquisa inversa. Novidade emmongosh1,3,0.forward, o efeito é o mesmo que definirauthMechanismProperties=CANONICALIZE_HOST_NAME:true.none, o efeito é o mesmo que definirauthMechanismProperties=CANONICALIZE_HOST_NAME:false.
--oidcFlowsEspecifica fluxos OpenID Connect em uma lista separada por vírgula. Os fluxos do OpenID Connect especificam como o
mongoshinterage com o provedor de identidade para o processo de autenticação. Omongoshsuporta os seguintes fluxos OpenID Connect:Fluxo de conexão OpenIDDescriçãoauth-codePadrão.
mongoshabre um navegador e redireciona você para a tela de login do provedor de identidade.device-authmongoshfornece um URL e um código para concluir a autenticação. Esse é considerado um fluxo OpenID Connect menos seguro, mas pode ser usado quandomongoshé executado em um ambiente no qual não é possível abrir um navegador.Para configurar o
device-authcomo uma opção de contingência paraauth-code, consulte o seguinte exemplo:mongosh 'mongodb://localhost/' --authenticationMechanism MONGODB-OIDC --oidcFlows=auth-code,device-auth
--oidcDumpTokensEspecifica se
mongoshimprime tokens com informações extras de depuração. Use essa opção apenas para fins de depuração.A opção
--oidcDumpTokensaceita os seguintes valores:ValorDescriçãoredactedO padrão quando você define apenas
--oidcDumpTokens. Imprime informações de depuração de token com dados confidenciais redigidos.include-secretsImprime informações de depuração de token, incluindo credenciais que podem potencialmente autenticar em servidores de banco de dados.
Importante
O valor
include-secretsexpõe credenciais que invasores podem usar para autenticação. Use da opção apenas quando pessoas não autorizadas não puderem ver o resultado demongoshe as credenciais forem necessárias para fins de diagnóstico.
--oidcIdTokenAsAccessTokenEspecifica se
mongoshutiliza o token de ID recebido do provedor de identidade ao invés do token de acesso. Utilize esta opção com provedores de identidade que você não consegue configurar para fornecer tokens de acesso JWT.
--oidcNoNoncePor padrão,
mongoshenvia um parâmetro nonce durante o fluxo de código de autorização do OIDC.Se você configurar a opção
--oidcNoNonce, omongoshnão enviará um parâmetro nonce. Use essa opção se o seu provedor de identidade não oferecer suporte a valores únicos como parte da autorização.
--oidcRedirectUriEspecifica um URI em que o provedor de identidade redireciona você após a autenticação. O URI deve corresponder à configuração do provedor de identidade. O padrão é
http://localhost:27097/redirect.
--oidcTrustedEndpointIndica que a conexão atual é para um ponto de extremidade confiável que não é Atlas ou
localhost. Isso garante que os tokens de acesso sejam enviados ao servidor. Use essa opção somente ao se conectar a servidores nos quais você confia.
--browserEspecifica o navegador
mongoshredireciona você para quandoMONGODB-OIDCestá habilitado.Esta opção é executada com o shell do sistema.
Defina
--no-browserpara desativar totalmente a abertura de navegadores.
--password <password>, -p <password>Especifica uma senha com a qual autenticar em um banco de dados MongoDB que usa autenticação. Utilize em conjunto com as opções
--username--authenticationDatabasee.Para forçar o MongoDB Shell a solicitar uma senha, digite a opção como a última opção e deixe de fora o
--passwordargumento.
--username <username>, -u <username>Especifica um nome de usuário com o qual autenticar em um banco de dados MongoDB que usa autenticação. Utilize em conjunto com as opções
--password--authenticationDatabasee.
Opções de sessão
--retryWritesPermite gravações repetíveis.
Por padrão, as gravações que podem ser repetidas são:
habilitado em
mongoshdesabilitados no shell
mongolegado
Para desativar gravações repetitivas,
--retryWrites=falseuse.Para obter mais informações sobre sessões, consulte Sessões de clientes e garantias de consistência causal.
Opções de criptografia no nível do campo
--cryptSharedLibPath <string>Novidades na versão 8.2.
O caminho para a Biblioteca compartilhada de criptografia automática. A biblioteca deve ser 8 da2 versão..0 ou superior. Necessário para usar criptografia automática para a
mongoshsessão de shell do.
--awsAccessKeyId <string>Uma chave de acesso da AWS associada a um usuário do IAM que tem
ListReadpermissões de e para o AWS Key Management Service (KMS).mongoshutiliza o especificado--awsAccessKeyIdpara acessar o KMS.--awsAccessKeyIdé necessário para habilitar a criptografia em nível de campo do lado do cliente para a sessão do shellmongosh.--awsAccessKeyIdexige ambas as seguintes opções de linha de comando:Se o for
--awsAccessKeyIdMongo()omitido, utilize o construtor do dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .Para mitigar o risco de vazamento de chaves de acesso em logs, considere especificar uma variável ambiental
--awsAccessKeyIdpara.
--awsSecretAccessKey <string>Uma chave secreta da AWS associada ao especificado
--awsAccessKeyId.--awsSecretAccessKeyé necessário para habilitar a criptografia em nível de campo do lado do clientemongosh--awsSecretAccessKeypara a sessão. exige ambas as seguintes opções de linha de comando:Se
--awsSecretAccessKeyo e suas opções de suporte forem omitidas, utilize oMongo()dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .Para mitigar o risco de vazamento de chaves de acesso em logs, considere especificar uma variável ambiental
--awsSecretAccessKeypara.
--awsSessionToken <string>Um AWS Session Token associado ao especificado
--awsAccessKeyId.--awsSessionTokené necessário para habilitar a criptografia em nível de campo do lado do cliente para a sessão do shellmongosh.--awsSessionTokenrequer todas as seguintes opções de linha de comando:Se
--awsSessionTokeno e suas opções de suporte forem omitidas, utilize oMongo()dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .Para mitigar o risco de vazamento de chaves de acesso em logs, considere especificar uma variável ambiental
--awsSessionTokenpara.
--keyVaultNamespace <string>O namespace completo (
<database>.<collection>) da coleção usado como um cofre de chaves para criptografia no nível do campo do lado do cliente.--keyVaultNamespaceé necessário para habilitar a criptografia no nível do campo do lado do cliente para a sessão do shellmongosh.mongoshcria o namespace especificado se ele não existir.--keyVaultNamespaceexige ambas as seguintes opções de linha de comando:Se
--keyVaultNamespaceo e suas opções de suporte forem omitidas, utilize oMongo()construtor do dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .