Aviso
O documento a seguir pertence ao mongo
shell, incluído no download do MongoDB Server. Para obter informações sobre a nova shell MongoDB (),mongosh
consulte a documentação mongosh.
Para entender as diferenças entre as duas conchas, consulte Comparação da shell mongo
e mongosh
.
Personalizar a solicitação
Você pode modificar o conteúdo do prompt definindo a variável prompt
no shell mongo
. A variável prompt
pode conter strings e código JavaScript. Se prompt
contiver uma função que retorna uma string, o shell mongo
poderá exibir informações dinâmicas em cada prompt.
Você pode adicionar a lógica do prompt no arquivo .mongorc.js para definir o prompt toda vez que iniciar o shell mongo
.
Personalizar solicitação para exibir o número de operações
Por exemplo, para criar um prompt de shell mongo
com o número de operações emitidas na sessão atual, defina as seguintes variáveis no shell mongo
:
cmdCount = 1; prompt = function() { return (cmdCount++) + "> "; }
O prompt seria então semelhante ao seguinte:
1> 2> 3>
Personalizar solicitação para exibir o banco de dados e o nome do host
Para criar um prompt de shell mongo
na forma de <database>@<hostname>$
, defina as seguintes variáveis:
host = db.serverStatus().host; prompt = function() { return db+"@"+host+"$ "; }
O prompt seria então semelhante ao seguinte:
test@myHost1$
Personalizar prompt para exibir o tempo de atividade e a contagem de documentos
Para criar um prompt de shell mongo
que contenha o tempo de atividade do sistema e o número de documentos no banco de banco de dados atual, defina a seguinte variável prompt
no shell mongo
:
prompt = function() { return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+" > "; }
O prompt seria então semelhante ao seguinte:
Uptime:5897 Documents:6 >
Use um editor externo no mongo
shell
Você pode usar seu próprio editor no shell mongo
definindo a variável de ambiente EDITOR
antes de iniciar o shell mongo
.
export EDITOR=vim mongo
Uma vez no shell mongo
, você pode editar com o editor especificado digitando edit <variable>
ou edit <function>
, como no exemplo a seguir:
Defina uma função
myFunction
:function myFunction () { } Edite a função usando seu editor:
edit myFunction O comando deve abrir a sessão de edição
vim
. Quando terminar as edições, salve e saia da sessão de ediçãovim
.No shell
mongo
, digitemyFunction
para ver a definição da função:myFunction O resultado deve ser as alterações da sua edição salva:
function myFunction() { print("This was edited"); }
Observação
Como o shell mongo
interpreta o código editado em um editor externo, ele pode modificar o código em funções, dependendo do compilador JavaScript. Por exemplo, o shell mongo
pode converter 1+1
em 2
ou remover comentários. As alterações reais afetam apenas a aparência do código e variam de acordo com a versão do JavaScript usada, mas não afetarão a semântica do código.
Altere o tamanho do lote do shell mongo
O método db.collection.find()
é o método JavaScript para recuperar documentos de uma coleção. O método db.collection.find()
retorna um cursor para os resultados; no entanto, na shell mongo
, se o cursor retornado não for atribuído a uma variável usando a palavra-chave var
, o cursor será automaticamente iterado até 20 vezes para imprimir até o primeiro 20 documentos que correspondem a query. O shell mongo
solicitará a Type it
para iterar mais 20 vezes.
Você pode definir o atributo DBQuery.shellBatchSize
para alterar o número de documentos do valor padrão de 20
, como no exemplo a seguir que o define como 10
:
DBQuery.shellBatchSize = 10;