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.
Descrição
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:
Acesse o Centro de Download da sua edição do MongoDB:
Selecione seus Version e Platform preferidos nos menus suspensos.
Selecione o Package para baixar de acordo com sua plataforma:
Copie o shell
mongodo 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
mongoexibe 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.mongodesabilita o suporte para criptografia TLS 1.0 em sistemas onde o TLS 1.1+ está disponível.
Sintaxe
Você pode executar o shell
mongosem nenhuma opção de linha de comando usando as configurações padrão:mongo Você pode executar o shell
mongocom uma connection string que especifica o host, a porta e outras opções de conexão. Por exemplo, o seguinte inclui otls:mongo "mongodb://mongodb0.example.com:27017/testdb?tls=true" A opção
tlsestá disponível a partir de MongoDB 4.2. Na versão anterior, utilize a opçãossl.Para conectar a shell
mongoa 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
mongocom 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.
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.
Opções principais
--shellHabilita a interface shell. Se você invocar o comando
mongoe especificar um arquivo JavaScript como um argumento, ou utilizar--evalpara especificar JavaScript na linha de comando, a opção--shellfornecerá ao usuário um prompt de shell após o arquivo finalizar a execução.
--nodbImpede 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.
--port <port>Especifica a porta em que a instância
mongodoumongosestá escutando. Se--portnão for especificado,mongotentará se conectar à porta27017.
--host <hostname>Especifica o nome da máquina host onde o
mongodoumongosestá executando. Se isso não for especificado,mongotentará 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 de sementes dos membros do conjunto. Use o seguinte formulário:<replSetName>/<hostname1><:port>,<hostname2><:port>,<...> - Para conexões TLS/SSL (
--ssl), mongoshverifica se o nome de host (especificado na ou ) corresponde { 7 string} ao--hostSAN(ou, seSANnão estiver presente, aoCN) no certificado apresentado pelomongodoumongos. SeSANestiver presente,mongoshnão corresponde aoCN. Se o nome do host não corresponder aSAN(ouCN),mongoshnã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çõesauthSourceereplicaSet, se incluídas na connection string, substituirão quaisquer opções correspondentes configuradas pelo DNS definidas no registro TXT. O uso da connection stringmongodb+srv:ativa implicitamente o TLS/SSL (normalmente definido comssl=true) para a conexão do cliente. A opção TLS/SSL pode ser desativada configurando ossl=falsena 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.
mongonã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
--passworde--authenticationDatabase.Se estiver se conectando a um cluster usando MongoDB Atlas o
MONGODB-AWSauthentication 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 ambienteAWS_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
--usernamee--authenticationDatabase. Para forçarmongoa solicitar uma senha, digite a opção--passwordcomo a última opção e deixe de fora o argumento.Se estiver se conectando a um cluster MongoDB Atlas usando o
MONGODB-AWSauthentication 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 ambienteAWS_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.
--apiStrictNovidades 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.
--apiDeprecationErrorsNovidades 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-AWSauthentication mechanisme 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 ambienteAWS_SESSION_TOKEN. Consulte Conectar-se a um MongoDB Atlas cluster usando Credenciais IAM do Amazon Web Services.Válido somente ao utilizar o
MONGODB-AWSauthentication mechanism.
--help, -hRetorna informações sobre as opções e uso do
mongo.
--versionRetorna o número de versão do
mongo.
--networkMessageCompressors <string>Novidade na versão 3.4.
Habilita a compactação de rede para comunicação entre este shell
mongoe:Você pode especificar os seguintes compressores:
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
mongoshespecificar os seguintes compressores de redezlib,snappye omongodespecificarsnappy,zlib, as mensagens entre omongoshe omongodusarãozlib.Se as partes não compartilharem pelo menos um compressor comum, as mensagens entre as partes serão descompactadas. Por exemplo, se o
mongoshespecificar o compressor de redezlibe omongodespecificarsnappy, as mensagens entre omongoshe omongodnão serão compactadas.
--ipv6Ativa o suporte a IPv6 .
mongodesabilita IPv6 por padrão.Para se conectar a um cluster MongoDB via IPv6, você deve especificar
--ipv6e--host <mongod/mongos IPv6 address>ao iniciar o shellmongo.mongodemongosdesabilitam o suporte a IPv6 por padrão. Especificar--ipv6ao conectar-se a ummongod/mongosnão habilita o suporte a IPv6 nomongod/mongos. Para obter a documentação sobre como ativar o suporte a IPv6 nomongod/mongos, consultenet.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
mongoao 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
--hostou--port.
--disableJavaScriptJITAlterado na versão 4.0: O compilador JIT do mecanismo JavaScript agora está desabilitado por padrão.
Desabilita o compilador JIT do mecanismo JavaScript.
--disableJavaScriptProtectionPermite que os JavaScript campos do tipo e javascriptWithScope (*Obsoleto*) sejam automaticamente ordenados para JavaScript funções no
mongoshell.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ávelCodedo 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
mongosolicite uma senha usando--password, passe o nome do arquivo como o primeiro parâmetro com--usernamee--passwordcomo as últimas opções, como no exemplo a seguir:mongo file.js --username username --password Use a opção
--shellpara retornar a um shell depois que o arquivo finalizar a execução.
Opções de autenticação
--authenticationDatabase <dbname>Especifica o banco de 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, omongoutilizará o banco de dados de dados especificado na string de conexão.Se estiver usando o GSSAPI (Kerberos), PLAIN (LDAP SASL) ou
MONGODB-AWSauthentication mechanisms, você deverá definir--authenticationDatabasecomo$external.
--authenticationMechanism <name>Padrão: SCRAM-SHA-1
Especifica o mecanismo de autenticação que a instância do
mongoutiliza para autenticar nomongodoumongos.Alterado na versão 4.4: Com o MongoDB 4.4, o shell
mongoadiciona suporte ao novo mecanismo de autenticaçãoMONGODB-AWSao se conectar a um cluster MongoDB Atlas .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 de certificado TLS/SSL do MongoDB.
MONGODB-AWSAutenticação externa usando credenciais AWS IAM para uso na conexão com um cluster do MongoDB Atlas. Consulte Conectar-se a um Cluster do MongoDB Atlas usando Credenciais AWS IAM.
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. Esse mecanismo está disponível apenas no MongoDB Enterprise.
--gssapiHostNameEspecifique o nome de host de um serviço utilizando GSSAPI/Kerberos. Só é 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.
--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.
Opções de TLS
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.
--tlsNovidades na versão 4.2.
Permite a conexão com um
mongodoumongosque tenha suporte a TLS/SSL habilitado.Se
--tlsCAFileounet.tls.CAFile(ou seus pseudônimos--sslCAFileoussl.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,mongoshera encerrado com um erro informando que não foi possível validar o certificado.Para usar a autenticação x.509,
--tlsCAFileounet.tls.CAFiledeve-se especificar a menos que você esteja usando--tlsCertificateSelectorou--net.tls.certificateSelector.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara TLS/SSL e Configuração TLS/SSL para clientes.
--tlsCertificateKeyFile <filename>Novidades na versão 4.2.
Especifica o arquivo
.pemque contém o certificado TLS/SSL e a chave para o shellmongo. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Esta opção é exigida ao utilizar a opção
--tlspara conectar a uma instância domongodoumongosque exige certificados de cliente. Ou seja, o shellmongoapresenta este certificado ao servidor.O
mongod/mongosregistra um aviso na conexão se o certificado x.509 apresentado expirar dentro de30dias do horário do sistema hostmongod/mongos.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara 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
--tlsCertificateKeyFilePasswordsomente se o arquivo da chave de certificado for codificado. Em todos os casos, omongoeliminará 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, omongosolicitará uma senha. Consulte Senha do Certificado TLS/SSL.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara TLS/SSL e Configuração TLS/SSL para clientes.
--tlsCAFile <filename>Novidades na versão 4.2.
Especifica o arquivo
.pemque contém a sequência de certificados raiz da Autoridade de certificação. Esse arquivo é usado para validar o certificado apresentado pela instânciamongod/mongos.Especifique o nome do arquivo
.pemusando caminhos relativos ou absolutos.Se
--tlsCAFileounet.tls.CAFile(ou seus pseudônimos--sslCAFileoussl.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,mongoshera encerrado com um erro informando que não foi possível validar o certificado.Para usar a autenticação x.509,
--tlsCAFileounet.tls.CAFiledeve-se especificar a menos que você esteja usando--tlsCertificateSelectorou--net.tls.certificateSelector.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara 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
.pemque contém a lista de certificados revogados. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara 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
enablesa 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.
--tlsAllowInvalidHostnamesNovidades na versão 4.2.
Desabilita a validação dos nomes de host no certificado apresentado pela instância
mongod/mongos. Permite quemongose 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
mongode omongospara TLS/SSL e Configuração TLS/SSL para clientes.
--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
Se você especificar
--tlsAllowInvalidCertificatesounet.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
--sslAllowInvalidCertificatesse possível. Se o uso do--sslAllowInvalidCertificatesfor 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, omongosh(e outras ferramentas MongoDB) não tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificadosmongodemongosexpirados, bem como para processos externos que se fazem passar por instânciasmongodoumongosválidas. Se você só precisar desabilitar a validação do nome de host nos certificados TLS/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
mongode omongospara TLS/SSL e Configuração TLS/SSL para clientes.
--tlsFIPSModeNovidades na versão 4.2.
Direciona
mongopara 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
--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.
O
mongod/mongosregistra um aviso na conexão se o certificado x.509 apresentado expirar dentro de30dias do horário do sistema hostmongod/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_2e 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_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.
Opções SSL (obsoleto)
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.
--sslDescontinuado desde a versão 4.2: em vez disso, use
--tls.Permite a conexão com um
mongodoumongosque tenha suporte a TLS/SSL habilitado.Se
--tlsCAFileounet.tls.CAFile(ou seus pseudônimos--sslCAFileoussl.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,mongoshera encerrado com um erro informando que não foi possível validar o certificado.Para usar a autenticação x.509,
--tlsCAFileounet.tls.CAFiledeve-se especificar a menos que você esteja usando--tlsCertificateSelectorou--net.tls.certificateSelector.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara 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
.pemque contém o certificado e a chave TLS/SSL. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Esta opção é exigida ao utilizar a opção
--sslpara conectar a ummongodoumongosque tenhassl.CAFilehabilitado semssl.allowConnectionsWithoutCertificates.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara 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--sslPEMKeyPasswordsomente se o arquivo da chave de certificado for codificado. Em todos os casos, omongoeliminará 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, omongosolicitará uma senha. Consulte Senha do Certificado TLS/SSL.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara 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
.pemque contém a sequência de certificados raiz da autoridade de certificação. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Se
--tlsCAFileounet.tls.CAFile(ou seus pseudônimos--sslCAFileoussl.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,mongoshera encerrado com um erro informando que não foi possível validar o certificado.Para usar a autenticação x.509,
--tlsCAFileounet.tls.CAFiledeve-se especificar a menos que você esteja usando--tlsCertificateSelectorou--net.tls.certificateSelector.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongode omongospara 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
--tlsCertificateKeyFilee--sslCertificateSelectorsã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.
--sslCertificateSelectoraceita 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.
--sslCRLFile <filename>Descontinuado desde a versão 4.2: em vez disso, use
--tlsCRLFile.Especifica o arquivo
.pemque contém a lista de certificados revogados. Especifique o nome do arquivo.pemusando caminhos relativos ou absolutos.Observação
A partir da versão 4.4, para verificar a revogação de certificados, o MongoDB
enablesa 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
mongode omongospara TLS/SSL e Configuração TLS/SSL para clientes.
--sslFIPSModeDescontinuado desde a versão 4.2: em vez disso, use
--tlsFIPSMode.Direciona
mongopara 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.
--sslAllowInvalidCertificatesDescontinuado 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
--tlsAllowInvalidCertificatesounet.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
--sslAllowInvalidCertificatesse possível. Se o uso do--sslAllowInvalidCertificatesfor 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, omongosh(e outras ferramentas MongoDB) não tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificadosmongodemongosexpirados, bem como para processos externos que se fazem passar por instânciasmongodoumongosválidas. Se você só precisar desabilitar a validação do nome de host nos certificados TLS/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
mongode omongospara TLS/SSL e Configuração TLS/SSL para clientes.
--sslAllowInvalidHostnamesDescontinuado 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
mongose 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
mongode omongospara 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_2e a partir da versão 4.0.4 (e 3.6.9),TLS1_3.No 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--sslDisabledProtocols.Novidades na versão 3.6.5.
Sessões
--retryWritesNovidade 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.
Opções de criptografia no nível de campo do lado do cliente
--awsAccessKeyId <string>Uma chave de acesso do Amazon Web Services associada a um usuário do IAM com permissões
ListeReadpara o Amazon Web Services KMS (KMS). Omongoshell usa 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 shellmongo.--awsAccessKeyIdrequer todas as seguintes opções de linha de comando:Se o
--awsAccessKeyIdfor omitido, utilize o construtorMongo()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 da AWS associada ao
--awsAccessKeyIdespecificado.--awsSecretAccessKeyé necessário para habilitar a criptografia em nível de campo do lado do cliente para a sessão do shellmongo.--awsSecretAccessKeyrequer todas as seguintes opções de linha de comando:Se o
--awsSecretAccessKeye suas opções de suporte forem omitidas, utilize oMongo()dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .Para mitigar o risco de vazamento de chaves de acesso em logs, considere especificar uma variável ambiental para
--awsSecretAccessKey.
--awsSessionToken <string>Um Amazon Web Services Session Token associado ao
--awsAccessKeyIdespecificado.--awsSessionTokené necessário para habilitar a criptografia em nível de campo do lado do cliente para a sessão do shellmongo.--awsSessionTokenrequer todas as seguintes opções de linha de comando:Se o
--awsSessionTokene suas opções de suporte forem omitidas, utilize oMongo()dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .Para mitigar o risco de vazamento de chaves de acesso em logs, considere especificar uma variável ambiental 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 shellmongo.mongocria o namespace especificado se não existir.--keyVaultNamespacerequer todas as seguintes opções de linha de comando:Se o
--keyVaultNamespacee suas opções de suporte forem omitidas, utilize o construtor doMongo()dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .
.idl
~/.dbshellmongomantém um histórico de comandos no arquivo.dbshell.Observação
mongonão registra a interação relacionada à autenticação no arquivo de histórico, incluindoauthenticateedb.createUser().
~/.mongorc.jsmongolerá o arquivo.mongorc.jsa partir do diretório inicial do usuário invocandomongo. No arquivo, os usuários podem definir variáveis, personalizar o prompt do shellmongoou 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 commongo --evalou especificando um arquivo .js para mongo,mongolerá o arquivo.mongorc.jsapós o término do processamento do JavaScript.Especifique a opção
--norcpara desabilitar a leitura.mongorc.js.
/etc/mongorc.jsArquivo global
mongorc.jsque o shellmongoavalia na inicialização. Se um usuário também tiver um arquivo.mongorc.jslocalizado no diretórioHOME, o shellmongoavaliará o arquivo/etc/mongorc.jsglobal antes de avaliar o arquivo.mongorc.jsdo usuário./etc/mongorc.jsdeve ter permissão de leitura para o usuário que executa o shell. A opção--norcparamongosuprime somente o arquivo.mongorc.jsdo 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
mongoao editar um arquivo. Se o arquivo existir,mongoanexará um número inteiro de1a10ao valor de tempo para tentar criar um arquivo exclusivo. %TEMP%mongo_edit{<time_t>}.js- Criado por
mongo.exeno Windows ao editar um arquivo. Se o arquivo existir,mongoanexará um número inteiro de1a10ao valor de tempo para tentar criar um arquivo exclusivo.
ambiente
EDITOREspecifica o caminho para um editor para utilizar com o comando shell do
edit. Uma variável JavaScriptEDITORsubstituirá o valor deEDITOR.
HOMEEspecifica o caminho para o diretório inicial em que
mongolerá o arquivo.mongorc.jse gravará o arquivo.dbshell.
HOMEDRIVEEm sistemas Windows,
HOMEDRIVEespecifica o caminho do diretório em quemongolerá o arquivo.mongorc.jse gravará o arquivo.dbshell.
HOMEPATHEspecifica o caminho do Windows para o diretório inicial em que
mongolerá o arquivo.mongorc.jse gravará o arquivo.dbshell.
Atalhos de teclado
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 |
ctrl-D | Excluir um caractere (ou sair do shell) |
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 | 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. |
Usar
Normalmente, os usuários invocam o shell com o comando mongo no prompt do sistema. Considere os seguintes exemplos para outros cenários.
Conecte-se a uma instância com controle de mongod acesso
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.
Conecte-se a um conjunto de réplicas usando o formato de conexão DNS Seedlist
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 .
Conecte-se a um cluster MongoDB Atlas usando as credenciais AWS IAM
Novidades na versão 4.4.
Para conectar a um agrupamento do MongoDB Atlas que foi configurado para suportar autenticação via Credenciais do Amazon Web Services IAM, forneça uma string de conexão para o shell mongo semelhante ao seguinte:
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 token de sessão do Amazon Web Services além disso, forneça o AWS_SESSION_TOKEN authMechanismProperties valor em sua string de conexão, 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 variáveis de ambiente padrão do Amazon Web Services IAM. O shellmongo verifica as seguintes variáveis de ambiente quando você usa o MONGODB-AWS authentication mechanism:
AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEYAWS_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'
Executar JavaScript no mongo shell
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
Use para executar código --eval JavaScript
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)"