Menu Docs

Opções

Use as seguintes opções para visualizar e controlar vários aspectos do seu MongoDB Shell.

--build-info

Retorna um documento formatado em JSON com informações sobre suas dependências de compilação e drivermongosh.

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 mongosh executando 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 --eval ou múltiplos argumentos --eval juntos.

Após o mongosh avaliar o argumento --eval, ele imprime os resultados para sua linha de comando. Se você usar várias instruções --eval, mongosh imprimirá somente os resultados do último --eval.

Você pode usar a sinalização --json com --eval para retornar resultados mongosh no formato Extended JSON. mongosh suporta os modos --json=canonical e --json=relaxed . Se você omitir o modo, mongosh assumirá como padrão o modo canonical. 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

EJSON criou opções de formatação que podem eliminar a necessidade de um analisador como jq. Por exemplo, o código a seguir produz uma saída com o mesmo formato acima.

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.

--help, -h

Retorna informações sobre as opções e uso do MongoDB Shell.

--nodb

Impede que o shell se conecte a quaisquer instâncias do banco de dados.

--norc

Impede que o shell forneça e avalie ~/.mongoshrc.js na inicialização.

--quiet

Ignora todas as mensagens durante a inicialização (como mensagens de boas-vindas e avisos de inicialização) e vai diretamente para o prompt.

--shell

Habilita a interface shell. Se você invocar o comando mongosh e especificar um arquivo JavaScript como argumento ou usar --eval para especificar o JavaScript na linha de comando, a opção --shell fornecerá ao usuário um prompt de shell após o arquivo finalizar a execução. A sinalização --shell é mutuamente exclusiva com --json.

--verbose

Aumenta a verbosidade da saída de shell durante o processo de conexão e ao executar comandos.

--version

Retorna o número de versão do MongoDB Shell.

--apiVersion <version number>

Especifica a apiVersion. "1" é atualmente o único valor compatível.

--apiStrict

Especifica 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.

--apiDeprecationErrors

Especifica que o servidor responderá com APIDeprecationError se seu aplicativo utilizar um comando ou comportamento que é preterido no apiVersion especificado.

Ao especificar --apiDeprecationErrors, você também deverá especificar --apiVersion.

--host <hostname>

Especifica o nome da máquina host onde o mongod ou mongos está 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 name e 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 --host ou na string de conexão) corresponde ao SAN (ou, se SAN não estiver presente, o CN) no certificado apresentado pelo mongod ou mongos. Se SAN estiver presente, o MongoDB Shell não corresponderá ao CN. Se o nome do host não corresponder ao SAN (ou ao CN), 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ções authSource e replicaSet, se incluídas na connection string, substituem quaisquer opções correspondentes configuradas pelo DNS definidas no registro TXT. O uso da connection string mongodb+srv: ativa implicitamente o TLS / SSL (normalmente definido com tls=true) para a conexão do cliente. A opção TLS pode ser desativada definindo tls=false na string da query.

Exemplo

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

Especifica a porta em que a instância do mongod ou mongos está escutando. Se --port não for especificado, o MongoDB Shell tentará se conectar à porta 27017.

--tls

Permite a conexão com um mongod ou mongos que tenha suporte para TLS / SSL ativado.

Para saber mais sobre TLS/SSL e MongoDB, consulte:

--tlsCertificateKeyFile <filename>

Especifica o arquivo .pem que contém o certificado e chave TLS / SSL para mongosh. Especifique o nome do arquivo .pem usando caminhos relativos ou absolutos.

Esta opção é exigida ao utilizar a opção --tls para conectar-se a uma instância do mongod ou mongos que exija certificados de cliente. Ou seja, o MongoDB Shell apresenta esse certificado ao servidor.

Observação

A partir da versão 4.4, mongod / mongos registra um aviso na conexão se o certificado x.509 apresentado expirar dentro de 30 dias do horário do sistema host mongod/mongos.

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 --tlsCertificateKeyFilePassword somente 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 .pem que contém a sequência de certificados raiz da autoridade de certificação. Este arquivo é utilizado para validar o certificado apresentado pela instância mongod / mongos.

Especifique o nome do arquivo .pem usando caminhos relativos ou absolutos.

Para saber mais sobre TLS/SSL e MongoDB, consulte:

--tlsCRLFile <filename>

Especifica o arquivo .pem que contém a lista de certificados revogados. Especifique o nome do arquivo .pem usando caminhos relativos ou absolutos.

Para saber mais sobre TLS/SSL e MongoDB, consulte:

--tlsAllowInvalidHostnames

Desabilita 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:

--tlsAllowInvalidCertificates

Novidades na versão 4.2.

Ignora as verificações de validação para os certificados apresentados pela instância mongod / mongos e permite conexões para servidores que apresentam certificados inválidos.

Observação

A partir do MongoDB 4.0, se você especificar --tlsAllowInvalidCertificates ao 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 --tlsAllowInvalidCertificates se possível. Se o uso de --tlsAllowInvalidCertificates 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 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 certificados mongod e mongos expirados, bem como a processos estrangeiros que se fazem passar por instâncias mongod ou mongos válidas. Se você precisar apenas desativar a validação do nome do host nos certificados TLS / SSL, consulte --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.

As opções --tlsCertificateKeyFile e --tlsCertificateSelector sã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.

--tlsCertificateSelector aceita um argumento do formato <property>=<value> e a propriedade pode ser uma das abaixo:

Propriedade
Tipo de valor
Descrição

subject

string ASCII

Nome do assunto ou nome comum no certificado

thumbprint

string 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 é denominado fingerprint.

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.

Observação

A partir da versão 4.4, mongod / mongos registra um aviso na conexão se o certificado x.509 apresentado expirar dentro de 30 dias do horário do sistema host mongod/mongos.

--tlsDisabledProtocols <string>

Desabilita os protocolos TLS especificados. A opção reconhece os seguintes protocolos:

  • TLS1_0

  • TLS1_1

  • TLS1_2

  • (A partir da versão 4.0.4, 3.6.9, 3.4.24) TLS1_3

  • No macOS, você não pode desativar TLS1_1 e deixar TLS1_0 e TLS1_2 ativados. 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 none para --tlsDisabledProtocols.

--tlsUseSystemCA

Permite ao mongosh carregar certificados TLS disponíveis para a autoridade de certificação do sistema operacional. Use essa opção se desejar usar certificados TLS já disponíveis para seu sistema operacional sem especificar explicitamente esses certificados para mongosh.

--authenticationDatabase <dbname>

Especifica o banco de dados de autenticação onde o --username especificado 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 mongod ou mongos. Se você não especificar um authenticationMechanism, 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.

Valor
Descrição

RFC 5802 Mecanismo de Autenticação de Resposta de Desafio Salted padrão usando a função de hash SHA-1.

RFC 7677 Mecanismo de Autenticação de Resposta de Desafio Salted 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 PLAIN para autenticar usuários do banco de dados. PLAIN transmite 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.

--gssapiServiceName

Especifique 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.

--sspiHostnameCanonicalization tem o mesmo efeito que definir o par de chave CANONICALIZE_HOST_NAME:true|false na parte authMechanismProperties da string de conexão.

Se o --sspiHostnameCanonicalization estiver configurado para:

  • forwardAndReverse, executa uma pesquisa de DNS direta e, em seguida, uma pesquisa reversa. Novidade em mongosh 1.3.0.

  • forward, o efeito é o mesmo da configuração authMechanismProperties=CANONICALIZE_HOST_NAME:true.

  • none, o efeito é o mesmo da configuração authMechanismProperties=CANONICALIZE_HOST_NAME:false.

--oidcFlows

Especifica fluxos OpenID Connect em uma lista separada por vírgula. Os fluxos do OpenID Connect especificam como o mongosh interage com o provedor de identidade para o processo de autenticação. O mongosh suporta os seguintes fluxos OpenID Connect:

Fluxo de conexão OpenID
Descrição

auth-code

Padrão. mongosh abre um navegador e redireciona você para a tela de login do provedor de identidade.

device-auth

mongosh fornece um URL e um código para concluir a autenticação. Esse é considerado um fluxo OpenID Connect menos seguro, mas pode ser usado quando mongosh é executado em um ambiente no qual não é possível abrir um navegador.

Para configurar o device-auth como uma opção de contingência para auth-code, consulte o seguinte exemplo:

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

Especifica se mongosh utiliza 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.

--oidcRedirectUri

Especifica 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.

--oidcTrustedEndpoint

Especifica uma conexão com um ponto de extremidade confiável que não é Atlas ou localhost. Use essa opção somente ao se conectar a servidores nos quais você confia.

--browser

Especifica o navegador mongosh redireciona você para quando MONGODB-OIDC está habilitado.

Esta opção é executada com o shell do sistema.

--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 --username e --authenticationDatabase.

Para forçar o MongoDB Shell a solicitar uma senha, digite a opção --password como 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 --password e --authenticationDatabase.

--retryWrites

Permite gravações repetíveis.

Por padrão, as gravações que podem ser repetidas são:

  • habilitado em mongosh

  • desabilitados no shell mongo legado

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.

--awsAccessKeyId <string>

Uma chave de acesso da AWS associada a um usuário do IAM que tem as permissões List e Read para o AWS Key Management Service (KMS). mongosh usa o --awsAccessKeyId especificado 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 shell mongosh. --awsAccessKeyId exige ambas as seguintes opções de linha de comando:

Se --awsAccessKeyId for omitido, use o construtor Mongo() 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ão mongosh. --awsSecretAccessKey exige ambas as seguintes opções de linha de comando:

Se o --awsSecretAccessKey e suas opções de compatibilidade forem omitidas, utilize o Mongo() 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 Token de sessão da AWS associado a --awsAccessKeyIdespecificado.

--awsSessionToken é necessário para habilitar a criptografia no nível do campo do lado do cliente para a sessão do shell mongosh. --awsSessionToken requer todas as seguintes opções de linha de comando:

Se o --awsSessionToken e suas opções de compatibilidade forem omitidas, utilize o Mongo() 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 shell mongosh. mongosh cria o namespace especificado se ele não existir.

--keyVaultNamespace exige ambas as opções de linha de comando a seguir:

Se o --keyVaultNamespace e suas opções de compatibilidade forem omitidas, utilize o construtor Mongo() dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente.