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
mongoshdependências build e driver.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 resultados demongoshno formato Extended JSON.mongoshsuporta 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,mongoshexibe todas as mensagens durante a inicialização.
--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 desabilitar este comportamento--no-quietutilizando.
--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 argumento ou usar--evalpara especificar o 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 sinalização--shellé mutuamente exclusiva com--json.
Opções de API estáveis
--apiVersion <version number>Especifica a apiVersion.
"1"é atualmente o único valor compatível.
--apiStrictEspecifica que o servidor responderá com APIStrictError se seu aplicativo utilizar um comando ou comportamento fora da Stable API.
Ao especificar
--apiStrict, você também deverá especificar--apiVersion.
--apiDeprecationErrorsEspecifica que o servidor responderá com APIDeprecationError se seu aplicativo utilizar um comando ou comportamento que é preterido no
apiVersionespecificado.Ao especificar
--apiDeprecationErrors, você também deverá especificar--apiVersion.
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
replica set namee uma lista inicial dos membros do conjunto. Use o seguinte formulário:<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> - Para conexões TLS/SSL (
--tls), - O MongoDB Shell verifica se o nome do host (especificado na opção
--hostou na string de conexão) corresponde aoSAN(ou, seSANnão estiver presente, oCN) no certificado apresentado pelomongodoumongos. SeSANestiver presente, o MongoDB Shell não corresponderá aoCN. Se o nome do host não corresponder aoSAN(ou aoCN), 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 de nome de host SRV DNS e quaisquer opções. As opçõesauthSourceereplicaSet, se incluídas na connection string, substituem quaisquer opções correspondentes configuradas pelo DNS definidas no registro TXT. O uso da connection stringmongodb+srv:habilita implicitamente TLS / SSL (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 do
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 o suporte para TLS / SSL habilitado.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsCertificateKeyFile <filename>Especifica o
.pemarquivo que contém o certificado TLS/SSL e a chave paramongosh. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Esta opção é exigida ao utilizar a opção
--tlspara conectar-se a uma instância domongodoumongosque exija certificados de cliente. Ou seja, o MongoDB Shell apresenta esse certificado ao servidor.Observação
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
--tlsCertificateKeyFilePassword, o MongoDB Shell solicitará uma frase secreta.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 instância
mongod/mongos. 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/mongose permite conexões para servidores que apresentam certificados inválidos.Observação
A partir do MongoDB 4.0, se você especificar
--tlsAllowInvalidCertificatesao utilizar a autenticação x.509, um certificado inválido só é suficiente para estabelecer uma conexão TLS / SSL , mas é insuficiente para a autenticação.Aviso
Embora disponível, evite utilizar a opção
--tlsAllowInvalidCertificatesse possível. Se o uso de--tlsAllowInvalidCertificatesfor 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 outras ferramentas do MongoDB) for executado com a opção
--tlsAllowInvalidCertificates, o shell (e outras ferramentas do MongoDB) não tentará validar os certificados do servidor. Isso cria uma vulnerabilidade a certificadosmongodemongosexpirados, bem como a processos estrangeiros que se fazem passar por instânciasmongodoumongosválidas. Se você precisar apenas desativar a validação do nome do host nos certificados TLS / SSL, consulte a página--tlsAllowInvalidHostnames.Para saber mais sobre TLS/SSL e MongoDB, consulte:
--tlsCertificateSelector <parameter>=<value>Disponível no Windows e macOS como alternativa a
--tlsCertificateKeyFile.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.
![Assistente de importação de certificado da Microsoft onde a chave marcada como exportável]()
As opções
--tlsCertificateKeyFilee--tlsCertificateSelectorsão mutuamente exclusivas. Você só pode especificar uma.Especifica uma propriedade de certificado para selecionar um certificado correspondente do armazenamento de certificados do sistema operacional.
--tlsCertificateSelectoraceita um argumento do formato<property>=<value>e a propriedade pode ser uma das abaixo: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 versão 4.0, O MongoDB desabilita o uso do TLS 1.0 se TLS 1.1+ estiver disponível no sistema. Para habilitar o TLS 1.0, especifique
nonepara--tlsDisabledProtocols.
--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 tanto às conexões do MongoDB quanto à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
--usernameespecificado foi criado. Consulte Banco de dados de autenticação.Se você não especificar um valor para
--authenticationDatabase, o MongoDB Shell utilizará o banco de dados especificado na string de conexão.
--authenticationMechanism <name>Especifica o mecanismo de autenticação que o MongoDB Shell utiliza para autenticar no
mongodoumongos. Se você não especificar umauthenticationMechanism, mas fornecer credenciais de usuário, o MongoDB Shell e os drivers tentarão utilizar SCRAM-SHA-256. Se isso falhar, eles voltarão para SCRAM-SHA-1.ValorDescriçãoRFC 5802 mecanismo de autenticação de resposta de desafio salgado padrão usando a função de hash SHA-1.
RFC 7677 mecanismo de autenticação de resposta de desafio salgado padrão usando a função de hash SHA-256.
Exige featureCompatibilityVersion definido para
4.0.Autenticação do certificado TLS / SSL 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 do 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 padrão
mongodb.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 o par de chaveCANONICALIZE_HOST_NAME:true|falsena parteauthMechanismPropertiesda string de conexão.Se o
--sspiHostnameCanonicalizationestiver configurado para: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 o
mongoshimprime tokens com informações de depuração extras. Use essa opção apenas para fins de depuração.A opção
--oidcDumpTokensaceita os seguintes valores:ValorDescriçãoredactedPadrão quando você apenas define
--oidcDumpTokens. Imprime informações de depuração de token com dados confidenciais ocultados.include-secretsImprime informações de depuração de token, incluindo credenciais que podem autenticar em servidores de banco de dados .
Importante
O valor
include-secretsexpõe credenciais que os invasores podem utilizar para autenticação. Use essa opção somente quando pessoas não autorizadas não puderem visualizar a saída 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. Use 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 endpoint 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 MongoDB database que usa autenticação. Utilize em conjunto com as opções
--usernamee--authenticationDatabase.Para forçar o MongoDB Shell a solicitar uma senha, digite a opção
--passwordcomo a última opção e deixe de fora o argumento.
--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
--passworde--authenticationDatabase.
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 repetíveis, use
--retryWrites=false.Para obter mais informações sobre sessões, consulte Sessões de clientes e garantias de consistência causal.
Opções de criptografia em nível de campo
--cryptSharedLibPath <string>Novidades na versão 8.2.
O caminho para a Biblioteca compartilhada de criptografia automática. A biblioteca deve ser da versão 8.2.0 ou superior. Necessário para utilizar 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 as permissões
ListeReadpara o AWS Key Management Service (KMS).mongoshusa o--awsAccessKeyIdespecificado para 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
--awsAccessKeyIdfor omitido, use o construtorMongo()na sessão do shell para ativar a criptografia em nível de campo no lado do cliente.Para mitigar o risco de vazamento de chaves de acesso em logs, considere especificar uma variável ambiental para
--awsAccessKeyId.
--awsSecretAccessKey <string>Uma chave secreta da AWS associada ao
--awsAccessKeyIdespecificado.--awsSecretAccessKeyé necessário para ativar Criptografia de nível de campo do lado do cliente para a sessãomongosh.--awsSecretAccessKeyexige ambas as seguintes opções de linha de comando:Se o
--awsSecretAccessKeye suas opções de compatibilidade 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 para
--awsSecretAccessKey.
--awsSessionToken <string>Um Amazon Web Services Session Token associado ao
--awsAccessKeyIdespecificado.--awsSessionTokené necessário para habilitar a criptografia no nível do campo do lado do cliente para a sessão do shellmongosh.--awsSessionTokenrequer todas as seguintes opções de linha de comando:Se o
--awsSessionTokene suas opções de compatibilidade 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 para
--awsSessionToken.
--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 em nível de campo do lado do cliente para a sessão do shellmongosh.mongoshcria o namespace especificado se ele não existir.--keyVaultNamespaceexige ambas as opções de linha de comando a seguir:Se o
--keyVaultNamespacee suas opções de compatibilidade forem omitidas, utilize o construtorMongo()dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente.
