Opções
Nesta página
Use as seguintes opções para visualizar e controlar vários aspectos do seu MongoDB Shell.
Opções gerais
--build-info
Retorna 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
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 resultadosmongosh
no formato Extended JSON.mongosh
suporta os modos--json=canonical
e--json=relaxed
. Se você omitir o modo,mongosh
assumirá 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
EJSON
criou 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 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.
--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
.
Opções de API estáveis
--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
.
Opções de conexão
--host <hostname>
Especifica o nome da máquina host onde o
mongod
oumongos
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 aoSAN
(ou, seSAN
não estiver presente, oCN
) no certificado apresentado pelomongod
oumongos
. SeSAN
estiver 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 do nome de host DNS SRV e quaisquer opções. As opçõesauthSource
ereplicaSet
, se incluídas na connection string, substituem quaisquer opções correspondentes configuradas pelo DNS definidas no registro TXT. O uso da connection stringmongodb+srv:
ativa implicitamente o TLS / SSL (normalmente definido comtls=true
) para a conexão do cliente. A opção TLS pode ser desativada definindotls=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
oumongos
está escutando. Se--port
não for especificado, o MongoDB Shell tentará se conectar à porta27017
.
Opções de TLS
--tls
Permite a conexão com um
mongod
oumongos
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 paramongosh
. 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 domongod
oumongos
que 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
--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ânciamongod
/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 certificadosmongod
emongos
expirados, bem como a processos estrangeiros que se fazem passar por instânciasmongod
oumongos
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:PropriedadeTipo de valorDescriçãosubject
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 é 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_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 deixarTLS1_0
eTLS1_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
.
Opções de autenticação
--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
oumongos
. 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 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 chaveCANONICALIZE_HOST_NAME:true|false
na parteauthMechanismProperties
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 emmongosh
1.3.0.forward
, o efeito é o mesmo da configuraçãoauthMechanismProperties=CANONICALIZE_HOST_NAME:true
.none
, o efeito é o mesmo da configuraçãoauthMechanismProperties=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. Omongosh
suporta os seguintes fluxos OpenID Connect:Fluxo de conexão OpenIDDescriçãoauth-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 quandomongosh
é 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 paraauth-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 quandoMONGODB-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
.
Opções de sessão
--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.
Opções de criptografia no nível de campo do lado do cliente
--awsAccessKeyId <string>
Uma chave de acesso da AWS associada a um usuário do IAM que tem as permissões
List
eRead
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 shellmongosh
.--awsAccessKeyId
exige ambas as seguintes opções de linha de comando:Se
--awsAccessKeyId
for 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
--awsAccessKeyId
especificado.
--awsSecretAccessKey
é necessário para ativar Criptografia de nível de campo do lado do cliente para a sessãomongosh
.--awsSecretAccessKey
exige ambas as seguintes opções de linha de comando:Se o
--awsSecretAccessKey
e 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 Token de sessão da AWS associado a
--awsAccessKeyId
especificado.
--awsSessionToken
é necessário para habilitar a criptografia no nível do campo do lado do cliente para a sessão do shellmongosh
.--awsSessionToken
requer todas as seguintes opções de linha de comando:Se o
--awsSessionToken
e 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
.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 construtorMongo()
dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente.