Menu Docs

Definir configurações usando a API

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

disableLogging

booleano

false

Especifica se o MongoDB Shell grava entradas de registro.

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.

logCompressionEnabled

booleano

false

Especifica se o MongoDB Shell comprime arquivos de log. Quando esse valor true é, o MongoDB Shell usa o gzip para comprimir registros. Consulte Habilitar compactação de registro.

logLocation

string

Depende do seu sistema operacional.Consulte Exibir registros de shell.

Diretório onde o MongoDB Shell grava arquivos de log. Especifique um caminho de arquivo absoluto. Consulte Especificar a localização do arquivo de log.

logMaxFileCount

inteiro ou infinito

100

Número máximo de arquivos de log que o MongoDB Shell mantém. Depois que o MongoDB Shell atinge a contagem máxima de arquivo de log , ele começa a excluir os arquivos de log mais antigos até que a contagem esteja abaixo do limite. Consulte Modificar a contagem máxima de arquivos de log.

logRetentionDays

inteiro ou infinito

30

Número de dias em que os arquivos de log do MongoDB Shell são retidos. Se esse valor estiver definido Infinity como, os arquivos de log não serão excluídos com base na idade. Para evitar que o armazenamento de registros fique muito grande, especifique sempre pelo menos um critério de retenção de registros. Consulte Retenção de registros.

logRetentionGB

float ou Infinity

Desconfigurar

Quantidade máxima de espaço em gigabytes usado para registros MongoDB Shell . Se o tamanho combinado dos registros do MongoDB Shell exceder esse valor, os arquivos de log serão excluídos começando pelos registros mais antigos.

Se este valor estiver definido Infinity para, os arquivos de log não serão excluídos com base no tamanho do armazenamento. Para evitar que o armazenamento de registros fique muito grande, especifique sempre pelo menos um critério de retenção de registros. Consulte Retenção de registros.

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