Legacy shell mongo
shell
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
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.
Sintaxe
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 otls
: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çãossl
.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.
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
--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.
--port <port>
Especifica a porta em que a instância
mongod
oumongos
está escutando. Se--port
não for especificado,mongo
tentará se conectar à porta27017
.
--host <hostname>
Especifica o nome da máquina host onde o
mongod
oumongos
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, seSAN
não estiver presente, aoCN
) no certificado apresentado pelomongod
oumongos
. SeSAN
estiver presente,mongosh
não corresponde aoCN
. Se o nome do host não corresponder aSAN
(ouCN
),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çõesauthSource
ereplicaSet
, 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=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 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
--username
e--authenticationDatabase
. Para forçarmongo
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 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.
--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 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-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
.
--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:
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 redezlib,snappy
e omongod
especificarsnappy,zlib
, as mensagens entre omongosh
e omongod
usarãozlib
.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 redezlib
e omongod
especificarsnappy
, as mensagens entre omongosh
e omongod
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 shellmongo
.mongod
emongos
desabilitam o suporte a IPv6 por padrão. Especificar--ipv6
ao conectar-se a ummongod/mongos
nã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
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
.
--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ávelCode
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.
Opções de autenticaçã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
, omongo
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 nomongod
oumongos
.Alterado na versão 4.4: Com o MongoDB 4.4, o shell
mongo
adiciona suporte ao novo mecanismo de autenticaçãoMONGODB-AWS
ao se conectar a um cluster MongoDB Atlas .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 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 oPLAIN
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. 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.
--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.
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.
--tls
Novidades na versão 4.2.
Permite a conexão com um
mongod
oumongos
que tenha suporte a TLS/SSL habilitado.Se
--tlsCAFile
ounet.tls.CAFile
(ou seus pseudônimos--sslCAFile
oussl.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
ounet.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 omongos
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 shellmongo
. 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 domongod
oumongos
que exige certificados de cliente. Ou seja, o shellmongo
apresenta este certificado ao servidor.O
mongod
/mongos
registra um aviso na conexão se o certificado x.509 apresentado expirar dentro de30
dias do horário do sistema hostmongod/mongos
.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
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, omongo
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
, omongo
solicitará uma senha. Consulte Senha do Certificado TLS/SSL.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
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ânciamongod
/mongos
.Especifique o nome do arquivo
.pem
usando caminhos relativos ou absolutos.Se
--tlsCAFile
ounet.tls.CAFile
(ou seus pseudônimos--sslCAFile
oussl.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
ounet.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 omongos
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 omongos
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 quemongo
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 omongos
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
ounet.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
, omongosh
(e outras ferramentas MongoDB) não tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificadosmongod
emongos
expirados, bem como para processos externos que se fazem passar por instânciasmongod
oumongos
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 omongos
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:PropriedadeTipo de valorDescriçãosubject
string ASCIINome do assunto ou nome comum no certificadothumbprint
string hexadecimalUma 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
/mongos
registra um aviso na conexão se o certificado x.509 apresentado expirar dentro de30
dias 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_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 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 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.
--ssl
Descontinuado desde a versão 4.2: em vez disso, use
--tls
.Permite a conexão com um
mongod
oumongos
que tenha suporte a TLS/SSL habilitado.Se
--tlsCAFile
ounet.tls.CAFile
(ou seus pseudônimos--sslCAFile
oussl.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
ounet.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 omongos
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 ummongod
oumongos
que tenhassl.CAFile
habilitado semssl.allowConnectionsWithoutCertificates
.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
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, omongo
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
, omongo
solicitará uma senha. Consulte Senha do Certificado TLS/SSL.Para obter mais informações sobre TLS/SSL e MongoDB, consulte Configurar o
mongod
e omongos
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
ounet.tls.CAFile
(ou seus pseudônimos--sslCAFile
oussl.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
ounet.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 omongos
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:PropriedadeTipo de valorDescriçãosubject
string ASCIINome do assunto ou nome comum no certificadothumbprint
string hexadecimalUma 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
.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 omongos
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
ounet.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
, omongosh
(e outras ferramentas MongoDB) não tentará validar os certificados do servidor . Isso cria uma vulnerabilidade para certificadosmongod
emongos
expirados, bem como para processos externos que se fazem passar por instânciasmongod
oumongos
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 omongos
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 omongos
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 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--sslDisabledProtocols
.Novidades na versão 3.6.5.
Sessões
--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.
Opções de criptografia no nível de campo do lado do cliente
--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 shellmongo
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 shellmongo
.--awsAccessKeyId
requer todas as seguintes opções de linha de comando:Se o
--awsAccessKeyId
for 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 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 shellmongo
.--awsSecretAccessKey
requer todas as seguintes opções de linha de comando:Se o
--awsSecretAccessKey
e 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 Token de sessão da AWS associado a
--awsAccessKeyId
especificado.--awsSessionToken
é necessário para habilitar a criptografia em nível de campo do lado do cliente para a sessão do shellmongo
.--awsSessionToken
requer todas as seguintes opções de linha de comando:Se o
--awsSessionToken
e 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
.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 doMongo()
dentro da sessão de shell para habilitar a criptografia de nível de campo do lado do cliente .
.idl
~/.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, incluindoauthenticate
edb.createUser()
.
~/.mongorc.js
mongo
lerá o arquivo.mongorc.js
a partir do diretório inicial do usuário invocandomongo
. No arquivo, os usuários podem definir variáveis, personalizar o prompt do shellmongo
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 commongo --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 shellmongo
avalia na inicialização. Se um usuário também tiver um arquivo.mongorc.js
localizado no diretórioHOME
, o shellmongo
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
paramongo
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 de1
a10
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 de1
a10
ao valor de tempo para tentar criar um arquivo exclusivo.
ambiente
EDITOR
Especifica o caminho para um editor para utilizar com o comando shell do
edit
. Uma variável JavaScriptEDITOR
substituirá o valor deEDITOR
.
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 quemongo
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
.
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 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. |
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-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'
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
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)"