Menu Docs
Página inicial do Docs
/
Manual do MongoDB
/ / /

Legacy shell mongo shell

Nesta página

  • Descrição
  • Sintaxe
  • Opções
  • .idl
  • ambiente
  • Atalhos de teclado
  • Usar

Observação

O shell mongo foi descontinuado no MongoDB v5.0. A substituição é mongosh.

A documentação mais antiga do shell do mongo está incluída com a documentação correspondente para essa versão MongoDB.

Links rápidos para versões anteriores

Consulte Comparação da shell mongo e mongosh para mais informações.

mongo é uma interface de shell JavaScript interativa para MongoDB, que fornece uma interface poderosa para administradores de sistema, bem como uma maneira de os desenvolvedores testarem query e operações diretamente com o banco de dados. mongo também fornece um ambiente JavaScript totalmente funcional para uso com um MongoDB.

O shell mongo está incluído como parte da instalação do servidor MongoDB. Se você já tiver instalado o servidor, o shell mongo será instalado no mesmo local que o binário do servidor .

Como alternativa, se quiser baixar o shell mongo separadamente do MongoDB Server , você poderá instalar o shell como um pacote autônomo seguindo estas etapas:

  1. Acesse o Centro de Download da sua edição do MongoDB:

  2. Selecione seus Version e Platform preferidos nos menus suspensos.

  3. Selecione o Package para baixar de acordo com sua plataforma:

    Plataforma
    Pacote de download
    Windows
    Selecione o pacote zip para baixar um arquivo que inclui o shell mongo .
    macOS
    Selecione o pacote tgz para baixar um arquivo que inclui o shell mongo .
    Linux
    Selecione o pacote tgz para baixar o shell mongo .
  4. Copie o shell mongo do arquivo para um local em seu sistema de arquivos.

Para obter orientação de instalação adicional específica para sua plataforma ou para instalar o shell mongo como parte da instalação do MongoDB Server , consulte o guia de instalação para sua plataforma.

Observação

  • A partir do MongoDB 4.2 (e 4.0.13), o shell mongo exibe uma mensagem de aviso quando conectado a instâncias não genuínas do MongoDB, pois essas instâncias podem se comportar de forma diferente das instâncias oficiais do MongoDB; por exemplo funcionalidades ausentes ou incompletas, comportamentos diferentes das funcionalidades etc.

  • mongo desabilita o suporte para criptografia TLS 1.0 em sistemas onde o TLS 1.1+ está disponível.

  • Você pode executar o shell mongo sem nenhuma opção de linha de comando usando as configurações padrão:

    mongo
  • Você pode executar o shell mongo com uma connection string que especifica o host, a porta e outras opções de conexão. Por exemplo, o seguinte inclui o tls:

    mongo "mongodb://mongodb0.example.com:27017/testdb?tls=true"

    A opção tls está disponível a partir de MongoDB 4.2. Na versão anterior, utilize a opção ssl .

    Para conectar a shell mongo a um conjunto de réplicas, especifique na string de conexão os membros e o nome do conjunto de réplicas:

    mongo "mongodb://mongodb0.example.com.local:27017,mongodb1.example.com.local:27017,mongodb2.example.com.local:27017/?replicaSet=replA"

    Para obter mais informações sobre as opções de string de conexão , consulte Cadeias de conexão.

  • Você pode executar o shell mongo com várias opções de linha de comando. Por exemplo:

    mongo --host mongodb0.example.com:27017 [additional options]
    mongo --host mongodb0.example.com --port 27017 [additional options]

    Para obter mais informações sobre as opções disponíveis, consulte Opções.

Alterado na versão 4.2:

  • O MongoDB substitui as opções SSL e, em vez disso, adiciona novas opções TLS correspondentes.

--shell

Habilita a interface shell. Se você invocar o comando mongo e especificar um arquivo JavaScript como um argumento, ou utilizar --eval para especificar 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.

--nodb

Impede que o shell se conecte a quaisquer instâncias do banco de dados de dados. Posteriormente, para se conectar a um banco de dados de dados dentro do shell, consulte Abrir novas conexões.

--norc

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

--quiet

Saída silenciosa do shell durante o processo de conexão.

--port <port>

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

--host <hostname>

Especifica o nome da máquina host onde o mongod ou mongos está executando. Se isso não for especificado, mongo 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 de sementes dos membros do conjunto. Use o seguinte formulário:

<replSetName>/<hostname1><:port>,<hostname2><:port>,<...>
Para conexões TLS/SSL (--ssl),
mongosh verifica se o nome de host (especificado na ou ) corresponde { 7 string} ao--host SAN (ou, se SAN não estiver presente, ao CN) no certificado apresentado pelo mongod ou mongos. Se SAN estiver presente, mongosh não corresponde ao CN. Se o nome do host não corresponder a SAN (ou CN), mongosh não conseguirá se conectar.Começando no MongoDB 4.2, ao executar a comparação de SAN, o MongoDB suporta a comparação de nomes DNS ou endereços IP. Nas versões anteriores, o MongoDB suporta apenas comparações de nomes DNS.
Para conexões DNS Seed List,

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, substituirão 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 ssl=true) para a conexão do cliente. A opção TLS/SSL pode ser desativada configurando o ssl=false na string de query.

Exemplo:

mongodb+srv://server.example.com/?connectionTimeout=3000ms

Novidade na versão 3.6.

--eval <javascript>

Avalia uma expressão JavaScript especificada como um argumento. mongo não carrega seu próprio ambiente ao avaliar código. Como resultado, muitas opções do ambiente de shell não estão disponíveis.

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

Se estiver se conectando a um cluster usando MongoDB Atlas o MONGODB-AWS authentication mechanism, especifique seu Amazon Web Services de chave de acesso do ID nesse campo ou na de conexão string. Alternativamente, este valor também pode ser fornecido como a variável de ambiente AWS_ACCESS_KEY_ID. Consulte Conectar-se a um Cluster do MongoDB Atlas usando Credenciais IAM Amazon Web Services .

--password <password>, -p <password>

Especifica uma senha com a qual autenticar em um banco de banco de dados MongoDB que usa autenticação. Utilize em conjunto com as opções --username e --authenticationDatabase . Para forçar mongo a solicitar uma senha, digite a opção --password como a última opção e deixe de fora o argumento.

Se estiver se conectando a um cluster MongoDB Atlas usando o MONGODB-AWS authentication mechanism, especifique sua chave de acesso secreto do Amazon Web Services neste campo ou na stringde conexão. Alternativamente, este valor também pode ser fornecido como a variável de ambiente AWS_SECRET_ACCESS_KEY. Consulte Conectar-se a um Cluster do MongoDB Atlas usando Credenciais IAM Amazon Web Services .

--apiVersion <version number>

Novidades na versão 5.0.

Especifica a apiVersion. "1" é atualmente o único valor suportado.

--apiStrict

Novidades na versão 5.0.

Especifica que o servidor responderá com APIStrictError se seu aplicação utilizar um comando ou comportamento fora da Stable API.

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

--apiDeprecationErrors

Novidades na versão 5.0.

Especifica que o servidor responderá com APIDeprecationError se seu aplicação utilizar um comando ou comportamento que é preterido na apiVersion especificada.

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

--awsIamSessionToken <aws session token>

Se estiver se conectando a um cluster do MongoDB Atlas usando o MONGODB-AWS authentication mechanism e usando tokens de sessão além do ID da chave de acesso do Amazon Web Services e da chave de acesso secreta, especifique seu token de sessão do Amazon Web Services nesse campo ou na stringde conexão. Alternativamente, este valor também pode ser fornecido como a variável de ambiente AWS_SESSION_TOKEN. Consulte Conectar-se a um MongoDB Atlas cluster usando Credenciais IAM do Amazon Web Services.

Válido somente ao utilizar o MONGODB-AWS authentication mechanism.

--help, -h

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

--version

Retorna o número de versão do mongo.

--verbose

Aumenta a verbosidade da saída do shell durante o processo de conexão.

--networkMessageCompressors <string>

Novidade na versão 3.4.

Habilita a compactação de rede para comunicação entre este shell mongo e:

Você pode especificar os seguintes compressores:

  • snappy

  • zlib (Disponível a partir do MongoDB 3.6)

  • zstd (Disponível a partir do MongoDB 4.2)

Importante

As mensagens são compactadas quando ambas as partes habilitam a compactação de rede. Caso contrário, as mensagens entre as partes serão descompactadas.

Se você especificar vários compressores, a ordem na qual você os lista importa, bem como o iniciador de comunicação. Por exemplo, se o mongosh especificar os seguintes compressores de rede zlib,snappy e o mongod especificar snappy,zlib, as mensagens entre o mongosh e o mongod usarão zlib.

Se as partes não compartilharem pelo menos um compressor comum, as mensagens entre as partes serão descompactadas. Por exemplo, se o mongosh especificar o compressor de rede zlib e o mongod especificar snappy, as mensagens entre o mongosh e o mongod não serão compactadas.

--ipv6

Ativa o suporte a IPv6 . mongo desabilita IPv6 por padrão.

Para se conectar a um cluster MongoDB via IPv6, você deve especificar --ipv6 e --host <mongod/mongos IPv6 address> ao iniciar o shell mongo .

mongod e mongos desabilitam o suporte a IPv6 por padrão. Especificar --ipv6 ao conectar-se a um mongod/mongos não habilita o suporte a IPv6 no mongod/mongos. Para obter a documentação sobre como ativar o suporte a IPv6 no mongod/mongos, consulte net.ipv6.

<db name>

Especifica o nome do banco de banco de dados ao qual se conectar. Por exemplo:

mongo admin

O comando acima conectará o shell mongo ao banco de banco de dados admin da deployment do MongoDB em execução na máquina local. Você pode especificar uma instância do banco de dados de dados remoto, com o nome do host ou endereço IP resolvível. Separe o nome do banco de dados de dados do nome do host usando um caractere / . Veja os seguintes exemplos:

mongo mongodb1.example.net/test
mongo mongodb1/admin
mongo 10.8.8.10/test

Essa sintaxe é a única maneira de se conectar a um banco de banco de dados específico.

Para especificar hosts alternativos e um banco de dados de dados , você deve usar esta sintaxe e não pode usar --host ou --port.

--enableJavaScriptJIT

Novidades na versão 4.0.

Habilite o compilador JIT do mecanismo JavaScript.

--disableJavaScriptJIT

Alterado na versão 4.0: O compilador JIT do mecanismo JavaScript agora está desabilitado por padrão.

Desabilita o compilador JIT do mecanismo JavaScript.

--disableJavaScriptProtection

Permite que os JavaScript campos do tipo e javascriptWithScope (*Obsoleto*) sejam automaticamente ordenados para JavaScript funções no mongo shell.

Com o conjunto de sinalizadores --disableJavaScriptProtection , é possível executar imediatamente as funções JavaScript contidas em documentos. O exemplo a seguir demonstra esse comportamento dentro do shell:

> db.test.insertOne( { _id: 1, jsFunc: function(){ print( "hello" ) } } )
WriteResult({ "nInserted" : 1 })
> var doc = db.test.findOne( { _id: 1 } )
> doc
{ "_id" : 1, "jsFunc" : function (){ print ( "hello" ) } }
> typeof doc.jsFunc
function
> doc.jsFunc()
hello

O comportamento padrão (quando mongo é iniciado sem o sinalizador --disableJavaScriptProtection ) é converter as funções JavaScript incorporadas para o tipo de shell não executável Code do MongoDB . O exemplo a seguir demonstra o comportamento padrão dentro do shell:

> db.test.insertOne( { _id: 1, jsFunc: function(){ print("hello") } } )
WriteResult({ "nInserted" : 1 })
> var doc = db.test.findOne( { _id: 1 } )
> doc
{ "_id" : 1, "jsFunc" : { "code" : "function (){print(\"hello\")}" } }
> typeof doc.jsFunc
object
> doc.jsFunc instanceof Code
true
> doc.jsFunc()
uncaught exception: TypeError: doc.jsFunc is not a function :
@(shell):1:1
<file.js>

Especifica um arquivo JavaScript para executar e depois sair. Geralmente, esta deve ser a última opção especificada.

Observação

Opcional

Para especificar um arquivo JavaScript para executar e permitir que mongo solicite uma senha usando --password, passe o nome do arquivo como o primeiro parâmetro com --username e --password como as últimas opções, como no exemplo a seguir:

mongo file.js --username username --password

Use a opção --shell para retornar a um shell depois que o arquivo finalizar a execução.

--authenticationDatabase <dbname>

Especifica o banco de 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 mongo utilizará o banco de dados de dados especificado na string de conexão.

Se estiver usando o GSSAPI (Kerberos), PLAIN (LDAP SASL) ou MONGODB-AWS authentication mechanisms, você deverá definir --authenticationDatabase como $external.

--authenticationMechanism <name>

Padrão: SCRAM-SHA-1

Especifica o mecanismo de autenticação que a instância do mongo utiliza para autenticar no mongod ou mongos.

Alterado na versão 4.4: Com o MongoDB 4.4, o shell mongo adiciona suporte ao novo mecanismo de autenticação MONGODB-AWS ao se conectar a um cluster MongoDB Atlas .

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 de certificado TLS/SSL do MongoDB.
MONGODB-AWS
Autenticação externa usando credenciais do Amazon Web Services IAM para uso na conexão com um cluster do MongoDB Atlas . Consulte Conectar-se a um Cluster do MongoDB Atlas usando Credenciais IAM Amazon Web Services .
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. Esse mecanismo está disponível apenas no MongoDB Enterprise.
--gssapiHostName

Especifique o nome de host de um serviço utilizando GSSAPI/Kerberos. é necessário se o nome do host de uma máquina não corresponder ao nome do host resolvido pelo DNS.

Esta opção está disponível apenas no MongoDB Enterprise.

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

Observação

mongo desabilita o suporte para criptografia TLS 1.0 em sistemas onde o TLS 1.1+ está disponível.

Dica

Consulte:

Configure o mongod e o mongos para TLS/SSL para documentação completa do suporte do MongoDB.

--tls

Novidades na versão 4.2.

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

Se --tlsCAFile ou net.tls.CAFile (ou seus pseudônimos --sslCAFile ou ssl.CAFile) não forem especificados, o armazenamento de certificados CA de todo o sistema será usado ao conectar-se a um servidor habilitado por TLS/SSL. Em versões anteriores do MongoDB, mongosh era encerrado com um erro informando que não foi possível validar o certificado.

Para usar a autenticação x.509, --tlsCAFile ou net.tls.CAFile deve-se especificar a menos que você esteja usando --tlsCertificateSelector ou --net.tls.certificateSelector.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--tlsCertificateKeyFile <filename>

Novidades na versão 4.2.

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

Esta opção é exigida ao utilizar a opção --tls para conectar a uma instância do mongod ou mongos que exige certificados de cliente. Ou seja, o shell mongo apresenta este certificado ao servidor.

O 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 obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--tlsCertificateKeyFilePassword <value>

Novidades na versão 4.2.

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 mongo eliminará a senha de todos os registros e relatórios.

Se a chave privada no arquivo PEM for codificada e você não especificar a opção --tlsCertificateKeyFilePassword , o mongo solicitará uma senha. Consulte Senha do Certificado TLS/SSL.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--tlsCAFile <filename>

Novidades na versão 4.2.

Especifica o arquivo .pem que contém a sequência de certificados raiz da Autoridade de certificação. Esse arquivo é usado para validar o certificado apresentado pela instância mongod/mongos .

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

Se --tlsCAFile ou net.tls.CAFile (ou seus pseudônimos --sslCAFile ou ssl.CAFile) não forem especificados, o armazenamento de certificados CA de todo o sistema será usado ao conectar-se a um servidor habilitado por TLS/SSL. Em versões anteriores do MongoDB, mongosh era encerrado com um erro informando que não foi possível validar o certificado.

Para usar a autenticação x.509, --tlsCAFile ou net.tls.CAFile deve-se especificar a menos que você esteja usando --tlsCertificateSelector ou --net.tls.certificateSelector.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--tlsCRLFile <filename>

Novidade na versão 4.2: No MongoDB 4.0 e anteriores, consulte --sslCRLFile.

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

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

Observação

A partir da versão 4.4, para verificar a revogação de certificados, o MongoDB enables a utilização do OCSP (Online Certificate Status Protocol) por padrão como uma alternativa à especificação de um arquivo CRL ou ao uso do armazenamento de certificados SSL do sistema.

--tlsAllowInvalidHostnames

Novidades na versão 4.2.

Desabilita a validação dos nomes de host no certificado apresentado pela instância mongod/mongos . Permite que mongo 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 obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

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

Se você especificar --tlsAllowInvalidCertificates ou net.tls.allowInvalidCertificates: true, um certificado inválido será suficiente apenas para estabelecer uma conexão TLS, mas será insuficiente para autenticação.

Aviso

Embora disponível, evite utilizar a opção --sslAllowInvalidCertificates se possível. Se o uso do --sslAllowInvalidCertificates for necessário, use a opção somente em sistemas em que a intrusão não seja possível.

Se o mongosh (e outras ferramentas MongoDB) executar com a opção --sslAllowInvalidCertificates , o mongosh (e outras ferramentas MongoDB) não tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificados mongod e mongos expirados, bem como para processos externos que se fazem passar por instâncias mongod ou mongos válidas. Se você só precisar desabilitar a validação do nome de host nos certificados TLS/SSL, consulte --sslAllowInvalidHostnames.

Ao usar a configuração ssl.allowInvalidCertificates, o MongoDB registra como aviso o uso do certificado inválido.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--tlsFIPSMode

Novidades na versão 4.2.

Direciona mongo para usar o modo FIPS da biblioteca TLS/SSL. Seu sistema deve ter uma biblioteca compatível com FIPS para usar a opção --tlsFIPSMode .

Observação

O TLS/SSL compatível com FIPS está disponível apenas no MongoDB Enterprise. Consulte Configurar MongoDB para FIPS para obter mais informações.

--tlsCertificateSelector <parameter>=<value>

Novidade na versão 4.2: disponível no Windows e macOS como alternativa ao --tlsCertificateKeyFile.

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.

O 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>

Novidades na versão 4.2.

Desabilita os protocolos TLS especificados. A opção reconhece os seguintes protocolos: TLS1_0, TLS1_1, TLS1_2 e a partir da versão 4.0.4 (e 3.6.9 e 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.

Importante

A partir da versão 4.2, as opções de SSL estão obsoletas. Em vez disso, use as contrapartes TLS . O protocolo SSL está obsoleto e o MongoDB oferece suporte ao TLS 1.0 e posterior.

Observação

mongo desabilita o suporte para criptografia TLS 1.0 em sistemas onde o TLS 1.1+ está disponível.

--ssl

Descontinuado desde a versão 4.2: em vez disso, use--tls.

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

Se --tlsCAFile ou net.tls.CAFile (ou seus pseudônimos --sslCAFile ou ssl.CAFile) não forem especificados, o armazenamento de certificados CA de todo o sistema será usado ao conectar-se a um servidor habilitado por TLS/SSL. Em versões anteriores do MongoDB, mongosh era encerrado com um erro informando que não foi possível validar o certificado.

Para usar a autenticação x.509, --tlsCAFile ou net.tls.CAFile deve-se especificar a menos que você esteja usando --tlsCertificateSelector ou --net.tls.certificateSelector.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--sslPEMKeyFile <filename>

Descontinuado desde a versão 4.2: em vez disso, use--tlsCertificateKeyFile.

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

Esta opção é exigida ao utilizar a opção --ssl para conectar a um mongod ou mongos que tenha ssl.CAFile habilitado sem ssl.allowConnectionsWithoutCertificates.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--sslPEMKeyPassword <value>

Descontinuado desde a versão 4.2: em vez disso, use--tlsCertificateKeyFilePassword.

Especifica a senha para descriptografar o arquivo da chave de certificado (ou seja, --sslPEMKeyFile). Utilize a opção --sslPEMKeyPassword somente se o arquivo da chave de certificado for codificado. Em todos os casos, o mongo eliminará a senha de todos os registros e relatórios.

Se a chave privada no arquivo PEM for codificada e você não especificar a opção --sslPEMKeyPassword , o mongo solicitará uma senha. Consulte Senha do Certificado TLS/SSL.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--sslCAFile <filename>

Descontinuado desde a versão 4.2: em vez disso, use--tlsCAFile.

Especifica o arquivo .pem que contém a sequência de certificados raiz da autoridade de certificação. Especifique o nome do arquivo .pem usando caminhos relativos ou absolutos.

Se --tlsCAFile ou net.tls.CAFile (ou seus pseudônimos --sslCAFile ou ssl.CAFile) não forem especificados, o armazenamento de certificados CA de todo o sistema será usado ao conectar-se a um servidor habilitado por TLS/SSL. Em versões anteriores do MongoDB, mongosh era encerrado com um erro informando que não foi possível validar o certificado.

Para usar a autenticação x.509, --tlsCAFile ou net.tls.CAFile deve-se especificar a menos que você esteja usando --tlsCertificateSelector ou --net.tls.certificateSelector.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--sslCertificateSelector <parameter>=<value>

Descontinuado desde a versão 4.2: em vez disso, use--tlsCertificateSelector.

Novo na versão 4.0: Disponível no Windows e macOS como alternativa ao --tlsCertificateKeyFile.

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

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

--sslCRLFile <filename>

Descontinuado desde a versão 4.2: em vez disso, use--tlsCRLFile.

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

Observação

A partir da versão 4.4, para verificar a revogação de certificados, o MongoDB enables a utilização do OCSP (Online Certificate Status Protocol) por padrão como uma alternativa à especificação de um arquivo CRL ou ao uso do armazenamento de certificados SSL do sistema.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--sslFIPSMode

Descontinuado desde a versão 4.2: em vez disso, use--tlsFIPSMode.

Direciona mongo para usar o modo FIPS da biblioteca TLS/SSL. Seu sistema deve ter uma biblioteca compatível com FIPS para usar a opção --sslFIPSMode .

Observação

O TLS/SSL compatível com FIPS está disponível apenas no MongoDB Enterprise. Consulte Configurar MongoDB para FIPS para obter mais informações.

--sslAllowInvalidCertificates

Descontinuado desde a versão 4.2: em vez disso, use--tlsAllowInvalidCertificates.

Ignora as verificações de validação de certificados de servidor e permite o uso de certificados inválidos para conexão.

Observação

Se você especificar --tlsAllowInvalidCertificates ou net.tls.allowInvalidCertificates: true, um certificado inválido será suficiente apenas para estabelecer uma conexão TLS, mas será insuficiente para autenticação.

Aviso

Embora disponível, evite utilizar a opção --sslAllowInvalidCertificates se possível. Se o uso do --sslAllowInvalidCertificates for necessário, use a opção somente em sistemas em que a intrusão não seja possível.

Se o mongosh (e outras ferramentas MongoDB) executar com a opção --sslAllowInvalidCertificates , o mongosh (e outras ferramentas MongoDB) não tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificados mongod e mongos expirados, bem como para processos externos que se fazem passar por instâncias mongod ou mongos válidas. Se você só precisar desabilitar a validação do nome de host nos certificados TLS/SSL, consulte --sslAllowInvalidHostnames.

Ao usar a configuração ssl.allowInvalidCertificates, o MongoDB registra como aviso o uso do certificado inválido.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--sslAllowInvalidHostnames

Descontinuado desde a versão 4.2: em vez disso, use--tlsAllowInvalidHostnames.

Desabilita a validação dos nomes de host em certificados TLS/SSL. Permite que mongo se conecte a instâncias do MongoDB mesmo que o nome do host em seus certificados não corresponda ao nome de host especificado.

Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o mongod e o mongos para TLS/SSL e Configuração TLS/SSL para clientes.

--sslDisabledProtocols <string>

Descontinuado desde a versão 4.2: em vez disso, use--tlsDisabledProtocols.

Desabilita os protocolos TLS especificados. A opção reconhece os seguintes protocolos: TLS1_0, TLS1_1, TLS1_2 e a partir da versão 4.0.4 (e 3.6.9), 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 --sslDisabledProtocols.

Novidades na versão 3.6.5.

--retryWrites

Novidade na versão 3.6.

Habilita gravações repetitivas como padrão para sessões no shell mongo .

Para obter mais informações sobre sessões, consulte Sessões de clientes e garantias de consistência causal.

--awsAccessKeyId <string>

Uma Amazon Web Services chave de acesso ao associado a um usuário IAM com List Read permissões do Amazon Web Services KMS e para o (KMS). O shell mongo 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 mongo . --awsAccessKeyId requer todas as seguintes opções de linha de comando:

Se o --awsAccessKeyId for omitido, utilize o construtor 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 --awsAccessKeyId.

--awsSecretAccessKey <string>

Uma chave secreta do Amazon Web Services associado ao --awsAccessKeyId especificado.

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

Se o --awsSecretAccessKey e suas opções de suporte 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 em nível de campo do lado do cliente para a sessão do shell mongo . --awsSessionToken requer todas as seguintes opções de linha de comando:

Se o --awsSessionToken e suas opções de suporte 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 de nível de campo do lado do cliente. --keyVaultNamespace é necessário para habilitar a criptografia em nível de campo no lado do cliente . para a sessão de shell mongo . mongo cria o namespace especificado se não existir.

--keyVaultNamespace requer todas as seguintes opções de linha de comando:

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

~/.dbshell

mongo mantém um histórico de comandos no arquivo .dbshell .

Observação

mongo não registra a interação relacionada à autenticação no arquivo de histórico, incluindo authenticate e db.createUser().

~/.mongorc.js

mongo lerá o arquivo .mongorc.js a partir do diretório inicial do usuário invocando mongo. No arquivo, os usuários podem definir variáveis, personalizar o prompt do shell mongo ou atualizar informações que gostariam de atualizar sempre que iniciarem um shell. Se você usar o shell para avaliar um arquivo JavaScript ou uma expressão na linha de comando com mongo --eval ou especificando um arquivo .js para mongo, mongo lerá o arquivo .mongorc.js após o término do processamento do JavaScript.

Especifique a opção --norc para desabilitar a leitura .mongorc.js.

/etc/mongorc.js

Arquivo global mongorc.js que o shell mongo avalia na inicialização. Se um usuário também tiver um arquivo .mongorc.js localizado no diretório HOME , o shell mongo avaliará o arquivo /etc/mongorc.js global antes de avaliar o arquivo .mongorc.js do usuário.

/etc/mongorc.js deve ter permissão de leitura para o usuário que executa o shell. A opção --norc para mongo suprime somente o arquivo .mongorc.js do usuário.

No Windows, o mongorc.js </etc/mongorc.js> global existe no diretório %ProgramData%\MongoDB .

/tmp/mongo_edit{<time_t>}.js
Criado por mongo ao editar um arquivo. Se o arquivo existir, mongo anexará um número inteiro de 1 a 10 ao valor de tempo para tentar criar um arquivo exclusivo.
%TEMP%mongo_edit{<time_t>}.js
Criado por mongo.exe no Windows ao editar um arquivo. Se o arquivo existir, mongo anexará um número inteiro de 1 a 10 ao valor de tempo para tentar criar um arquivo exclusivo.
EDITOR

Especifica o caminho para um editor para utilizar com o comando shell do edit . Uma variável JavaScript EDITOR substituirá o valor de EDITOR.

HOME

Especifica o caminho para o diretório inicial em que mongo lerá o arquivo .mongorc.js e gravará o arquivo .dbshell .

HOMEDRIVE

Em sistemas Windows, HOMEDRIVE especifica o caminho do diretório em que mongo lerá o arquivo .mongorc.js e gravará o arquivo .dbshell .

HOMEPATH

Especifica o caminho do Windows para o diretório inicial em que mongo lerá o arquivo .mongorc.js e gravará o arquivo .dbshell .

O shell mongo suporta os seguintes atalhos de teclado: [1]

Combinação de teclas
Função
Seta para cima
Recuperar comando anterior do histórico
Seta para baixo
Recuperar o próximo comando do histórico
Início
Go para o início da linha
End
Go para o final da linha
Tab
Método/comando de preenchimento automático
Seta para a esquerda
Go para trás um caractere
Seta para a direita
Go para a frente um caractere
ctrl-seta para a esquerda
Go uma palavra
ctrl-seta para a direita
Go para a frente uma palavra
Seta para a esquerda
Go uma palavra
Seta para a direita
Go para a frente uma palavra
ctrl-A
Go para o início da linha
ctrl-B
Go para trás um caractere
ctrl-C
Sair do shell mongo
ctrl-D
Excluir um caractere (ou sair do shell mongo )
ctrl-E
Go para o final da linha
ctrl-F
Go para a frente um caractere
ctrl-G
Abortar
ctrl-J
Aceitar/avaliar a linha
ctrl-K
Eliminar/apagar a linha
ctrl-L ou digite cls
Limpar a tela
ctrl-M
Aceitar/avaliar a linha
ctrl-N
Recuperar o próximo comando do histórico
ctrl-P
Recuperar comando anterior do histórico
ctrl-R
Histórico de comandos de pesquisa reversa
ctrl-S
Histórico de comandos de pesquisa avançada
ctrl-T
Transpor caracteres
ctrl-U
Executar descarte de linha Unix
ctrl-W
Execute o rubout de palavras Unix
Ctrl-Y
ianque
ctrl-Z
Suspender (o controle de tarefas funciona no Linux)
ctrl-H
Excluir um caractere para trás
ctrl-I
Completo, igual à aba
Meta-B
Go uma palavra
Meta-C
Tornar palavra em maiúsculas
Meta-D
Palavra de eliminação
Meta-F
Go para a frente uma palavra
Meta-L
Alterar palavra para minúsculas
Meta-U
Alterar palavra para maiúsculas
Meta-Y
Iank-pop
Meta-Backspace
Palavra back-kill
Meta-<
Recupere o primeiro comando no histórico de comandos
Meta->
Recuperar o último comando no histórico de comandos
[1] O MongoDB aceita múltiplas vinculações de chave. A partir de 2.0, mongo inclui suporte para vinculações básicas de teclas emacs.

Normalmente, os usuários invocam o shell com o comando mongo no prompt do sistema. Considere os seguintes exemplos para outros cenários.

Para se conectar a um banco de dados de dados em um host remoto usando autenticação e uma porta não padrão, use o seguinte formulário:

mongo --username <user> --password --host <host> --port 28015

Como alternativa, considere a seguinte forma curta:

mongo -u <user> -p --host <host> --port 28015

Substitua <user> e <host> pelos valores apropriados para sua situação e substitua ou omita o --port conforme necessário.

Se você não especificar a senha para a opção de linha de comando --password ou -p , o shell mongo solicitará a senha.

Novidade na versão 3.6.

Para se conectar a um conjunto de réplicas descrito usando o formato de conexão SRV, use a opção --host para especificar a string de conexão para o shell mongo . No exemplo a seguir, a configuração de DNS é semelhante a:

Record TTL Class Priority Weight Port Target
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27317 mongodb1.example.com.
_mongodb._tcp.server.example.com. 86400 IN SRV 0 5 27017 mongodb2.example.com.

O registro TXT para a entrada de DNS inclui as opções replicaSet e authSource :

Record TTL Class Text
server.example.com. 86400 IN TXT "replicaSet=rs0&authSource=admin"

O seguinte comando conecta então o shell mongo ao conjunto de réplicas:

mongo --host "mongodb+srv://server.example.com/?username=allison"

O shell mongo solicitará automaticamente que você forneça a senha do usuário especificada na opção username .

Novidades na versão 4.4.

Para conectar-se a um MongoDB Atlas cluster do que foi configurado para suportar autenticação por meio Amazon Web Services de credenciais IAM, forneça uma connection string para o mongo shell semelhante a esta:

mongo 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'

A conexão ao Atlas utilizando credenciais Amazon Web Services IAM desta maneira utiliza o MONGODB-AWS authentication mechanism e o $external authSource, como mostrado neste exemplo.

Se estiver usando um Amazon Web Services token de sessão também, forneça o AWS_SESSION_TOKEN authMechanismProperties valor em sua connection string, como segue:

mongo 'mongodb+srv://<aws access key id>:<aws secret access key>@cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS&authMechanismProperties=AWS_SESSION_TOKEN:<aws session token>'

Observação

Se o ID da chave de acesso da AWS, a chave de acesso secreta ou o token de sessão incluírem os seguintes caracteres:

: / ? # [ ] @

esses caracteres devem ser convertidos usando codificação percentual.

Como alternativa, o ID da chave de acesso do Amazon Web Services e a chave de acesso secreta e, opcionalmente, o token de sessão podem ser fornecidos fora da string de conexão usando as opções --username, --password e --awsIamSessionToken , assim:

mongo 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS' --username <aws access key id> --password <aws secret access key> --awsIamSessionToken <aws session token>

Quando fornecidos como parâmetros da linha de comando, estas três opções não exigem codificação percentual.

Você também pode definir essas credenciais em sua plataforma usando Amazon Web Services variáveis de ambiente padrão IAM . O shell mongo verifica as seguintes variáveis de ambiente quando você usa o MONGODB-AWS authentication mechanism:

  • AWS_ACCESS_KEY_ID

  • AWS_SECRET_ACCESS_KEY

  • AWS_SESSION_TOKEN

Se definidas, essas credenciais não precisam ser especificadas na connection string ou por meio das opções explícitas para o shell mongo (ou seja, --username e --password).

O exemplo a seguir define essas variáveis de ambiente no shell bash :

export AWS_ACCESS_KEY_ID='<aws access key id>'
export AWS_SECRET_ACCESS_KEY='<aws secret access key>'
export AWS_SESSION_TOKEN='<aws session token>'

A sintaxe para definir variáveis de ambiente em outros shells será diferente. Consulte a documentação da sua plataforma para obter mais informações.

Você pode verificar se essas variáveis de ambiente foram definidas com o seguinte comando:

env | grep AWS

Depois de definido, o exemplo a seguir se conecta a um MongoDB Atlas cluster usando estas variáveis de ambiente:

mongo 'mongodb+srv://cluster0.example.com/testdb?authSource=$external&authMechanism=MONGODB-AWS'

Para executar um arquivo JavaScript sem avaliar o arquivo ~/.mongorc.js antes de iniciar uma sessão de shell, utilize o seguinte formulário:

mongo --shell --norc alternate-environment.js

Para executar um arquivo JavaScript com autenticação, com a senha solicitada em vez de fornecida na linha de comando, use o seguinte formulário:

mongo script-file.js -u <user> -p

Dica

Veja também:

Você pode usar a opção --eval para executar JavaScript diretamente da linha de comando.

Por exemplo, a operação a seguir avalia uma string JavaScript que faz query de uma collection e imprime os resultados como JSON.

No Linux e macOS, você precisará usar aspas simples (por exemplo, ') para incluir o JavaScript, utilizando o seguinte formulário:

mongo --eval 'db.collection.find().forEach(printjson)'

No Windows, você precisará usar aspas double (por exemplo, ") para incluir o JavaScript, utilizando o seguinte formulário:

mongo --eval "db.collection.find().forEach(printjson)"

Voltar

mongos