Definir configurações usando a API
Nesta página
A API do config
fornece métodos para examinar e atualizar a configuração do mongosh
. As atualizações feitas usando a API config
persistem entre as sessões.
Observação
A API config
pode ser usada dentro da interface da linha de comando mongosh
. Não tem efeito no shell do Compass.
Sintaxe
Imprima a configuração atual do mongosh
:
config
Retornar o valor atual para <property>
:
config.get( "<property>" )
Altere a configuração atual de <property>
para <value>
:
config.set( "<property>", <value> )
Redefinir um <property>
para o valor padrão:
config.reset( "<property>" )
Parâmetrossuportados property
Chave | Tipo | Default | Descrição |
---|---|---|---|
displayBatchSize | inteiro | 20 | O número de itens exibidos por iteração do cursor |
enableTelemetry | booleano | true | Permite enviar dados de rastreamento e diagnóstico anônimos para MongoDB. |
editor | string | null | Designa um editor para utilizar dentro do console do mongosh . Substitui a variável de ambiente do EDITOR se configurada. |
forceDisableTelemetry | booleano | false | Disponível apenas no arquivo de configuração global. Quando verdadeiro, os usuários não podem habilitar a telemetria manualmente. |
historyLength | inteiro | 1000 | O número de itens para armazenar no arquivo de histórico do RELP mongosh . |
inspectCompact | inteiro ou booleano | 3 | |
inspectDepth | inteiro ou infinito | 6 | A profundidade com que os objetos são impressos. Definir inspectDepth para Infinity (o objeto javascript) imprime todos os objetos aninhados para sua profundidade total. |
redactHistory | string | remove | Controla quais informações são registradas no histórico do shell. Deve ser um dos seguintes:
|
showStackTraces | booleano | false | Controla a exibição de um traçado de pilha juntamente com mensagens de erro. |
snippetAutoload | booleano | true | Se true , carregue automaticamente snippets instalados na inicialização. |
snippetIndexSourceURLs | string | Uma lista separada por ponto e vírgula de URLs que se vinculam a um registro de snippet. | |
snippetRegistryURL | string | O registro npm usado pelo cliente npm mongosh que instala o snippet. |
Comportamento
Remover ou suprimir informações confidenciais do histórico
mongosh
"dedica-se ao máximo" para corresponder padrões que normalmente correspondem a certos tipos de informações confidenciais.
Existem padrões que correspondem:
Certificados e chaves
Endereços de e-mail
Diretórios de usuários genéricos
URLs HTTP(s)
Endereços IP
Connection strings do MongoDB
Certas operações, como connect()
, são consideradas inerentemente sensíveis. Se redactHistory
estiver definido como remove
ou remove-redact
, as linhas com essas operações serão removidas do histórico da linha de comando.
Outras operações, a exemplo de find()
, ocasionalmente têm informações confidenciais, como endereços de e-mail. O histórico do shell manterá essas linhas conforme inseridas, a menos que redactHistory
esteja definido como remove-redact
.
Comportamento com o arquivo de configuração
Configurações especificadas com a API config
:
Substitua as configurações especificadas no arquivo de configuração.
Persistir entre reinicializações.
Exemplo
Considere o seguinte arquivo de configuração que define a configuração inspectDepth
como 20
:
mongosh: inspectDepth: 20
Durante sua sessão do mongosh
, você executa o seguinte comando para definir inspectDepth
como 10
:
config.set( "inspectDepth", 10 )
O valor de inspectDepth
se torna 10
e permanecerá 10
mesmo quando mongosh
for reiniciado.
Exemplos
Atualizar o número de itens retornados por um cursor
Considere exibir uma collection com vários documentos grandes. Você pode atualizar o batchSize
para limitar o número de itens retornados por um cursor.
config.set("displayBatchSize", 3)
As futuras operações de db.collection.find()
retornarão apenas 3 documentos por iteração do cursor.
Ativar rastreamentos de pilha
Ative os rastreamentos de pilha para ver relatórios de erros mais detalhados.
config.set("showStackTraces", true)
A saída difere assim:
// showStackTraces set to 'false' Enterprise> db.orders.find( {}, { $thisWontWork: 1 } ) MongoError: FieldPath field names may not start with '$'. // showStackTraces set to 'true' Enterprise> db.orders.find( {}, { $thisWontWork: 1 } ) Uncaught: MongoError: FieldPath field names may not start with '$'. at MessageStream.messageHandler (/usr/bin/mongosh:58878:20) at MessageStream.emit (events.js:315:20) at MessageStream.EventEmitter.emit (domain.js:548:15) at processIncomingData (/usr/bin/mongosh:57954:12) at MessageStream._write (/usr/bin/mongosh:57850:5) at writeOrBuffer (_stream_writable.js:352:12) at MessageStream.Writable.write (_stream_writable.js:303:10) at Socket.ondata (_stream_readable.js:719:22) at Socket.emit (events.js:315:20) at Socket.EventEmitter.emit (domain.js:548:15)
Chamar a config
API de fora do mongosh
Você pode chamar a API config
na linha de comando usando --eval
com mongosh
. Nesse caso, a opção --nodb
significa que mongosh
será atualizado sem se conectar a um MongoDB database.
Importante
Você deve utilizar aspas diferentes para a expressão --eval
e a propriedade config
. Ou seja, aspas simples para um e aspas duplas para o outro.
mongosh --nodb --eval 'config.set("enableTelemetry", true)'
mongosh
retorna informações adicionais junto com o resultado da chamada de API.
Current Mongosh Log ID: 609583b730e14918fa0d363f Using MongoDB: undefined Using Mongosh Beta: 0.12.1 For mongosh info see: https://www.mongodb.com/pt-br/docs/mongodb-shell/ Setting "enableTelemetry" has been changed
Suprimir informações confidenciais
Compare o histórico chamado quando redactHistory
estiver definido como remove-redact
ou remove
.
Configure o modo redactHistory
para remove-redact
e insira uma query contendo um endereço de e-mail.
config.set( "redactHistory", "remove-redact" ) db.contacts.find( {"email": "customer@clients.com" } )
Quando você pressiona up arrow
para reproduzir o último comando, o endereço de e-mail é omitido.
db.contacts.find( {"email": "<email>" } ) // Redacted
Configure o modo redactHistory
para remove
e insira uma query contendo um endereço de e-mail.
config.set( "redactHistory", "remove" ) db.contacts.find( {"email": "customer@clients.com" } )
Quando você pressiona up arrow
para reproduzir o último comando, o endereço de e-mail está presente.
db.contacts.find( {"email": "customer@clients.com" } )
O histórico do shell reflete as alterações. (Observe que isso armazena primeiro a entrada mais recente.)
db.contacts.find( {"email": "customer@clients.com" } ) config.set( "redactHistory", "remove" ) db.contacts.find( {"email": "<email>" } ) config.set( "redactHistory", "remove-redact" )
Redefinir uma definição de configuração para o valor padrão
Se você modificou uma configuração e deseja redefini-la para o valor padrão, utilize config.reset( "<property>" )
.
Altere o valor da configuração
historyLength
para2000
:config.set("historyLength", 2000) Verifique o valor atualizado de
historyLength
:config.get("historyLength") Redefinir a configuração
historyLength
para o valor padrão de1000
:config.reset("historyLength") Verifique o valor atualizado de
historyLength
:config.get("historyLength")