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

Definir configurações usando a API

Nesta página

  • Sintaxe
  • Comportamento
  • Exemplos

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.

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

O nível de elementos internos que mongosh gera em uma única linha. Elementos de array curtos também são agrupados em uma única linha.

Se definido como false, mongosh gera cada campo em sua própria linha.

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:

  • keep: Reter todo o histórico.

  • remove: Remover linhas que contêm informações confidenciais.

  • remove-redact: redigir informações confidenciais.

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.

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.

Configurações especificadas com a API config:

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.

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.

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)

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

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

Se você modificou uma configuração e deseja redefini-la para o valor padrão, utilize config.reset( "<property>" ).

  1. Altere o valor da configuração historyLength para 2000:

    config.set("historyLength", 2000)
  2. Verifique o valor atualizado de historyLength:

    config.get("historyLength")
  3. Redefinir a configuração historyLength para o valor padrão de 1000:

    config.reset("historyLength")
  4. Verifique o valor atualizado de historyLength:

    config.get("historyLength")

Voltar

Definir configurações