Usar um Editor para Comandos
O console mongosh
é orientado a linhas. No entanto, você também pode usar um editor para lidar com funções multilinhas. São duas opções:
Utilize o comando
edit
com um editor externo.Use o comando
.editor
, um editor integrado.
Usando um editor externo
O comandomongosh
edit
funciona com um editor externo. Você pode configurar um editor externo no shell que executa mongosh
ou de dentromongosh
.
Se os editores forem configurados em ambos os locais, o editor configurado dentro do mongosh
assumirá precedência.
Para definir um editor dentro de mongosh
, use o comando config.set() .
config.set( "editor", "vi" )
Consulte configurando o editor externo para obter mais exemplos.
Você pode usar o edit
de três maneiras:
Iniciar uma nova sessão de edição
Insira edit
por si mesmo para iniciar uma nova sessão de edição.
edit
Se você iniciar uma sessão de edição sem argumentos, o editor abrirá com a última edição carregada. Veja o exemplo, Editando um comando.
Editar uma variável
Se um argumento existir no espaço de nome do console, você poderá utilizar o edit
para atualizá-lo.
var albums = [ ]; edit albums
A variável
albums
é definida na primeira linha.A segunda linha abre o editor externo para editar o valor de
albums
.
Editar uma declaração
Para editar uma instrução no editor externo, invoque edit
com uma instrução como db.collection.insertMany()
.
edit db.digits.insertMany( [] )
Depois de editar db.music.insertMany( [] )
e sair do editor externo, o console mongosh
pode ter a seguinte aparência:
prompt> db.digits.insertMany([{ "zero": 0 }, { "one": 1 }, { "two": 2 }])
Ao sair do editor externo, a declaração é copiada para a linha de entrada do console, pronta para ser executada. Ele não é executado automaticamente. Pressione <enter>
para executar a declaração ou <ctrl> + c
para cancelá-la.
Uso do editor incorporado
O comando .editor
fornece recursos básicos de edição de múltiplas linhas.
O editor não salva o código. Quando você fecha o editor integrado, suas edições são carregadas no escopo global. Se a sua edição chamar quaisquer funções ou comandos, eles serão executados quando você fechar o editor.
Para iniciar o editor integrado:
.editor
Insira <ctrl> + d
para sair e executar sua função.
Consulte Usando o Editor Integrado.
Exemplos
Definir o Editor Externo
Se a variável de ambiente EDITOR
estiver definida no shell que executa o mongosh
, o comando edit
usará esse editor.
Se a propriedade mongosh
editor
também estiver definida, mongosh
usará esse programa. A propriedade editor
substitui a variável de ambiente EDITOR
.
Defina a EDITOR
variável do ambiente
A variável de ambiente deve ser configurada antes de iniciar o mongosh
.
Configurar uma variável de ambiente no bash
ou zsh
:
export EDITOR=vi
O editor do vi
abrirá quando você executar o edit
no console do mongosh
.
Definir a editor
propriedade
Para definir nano
como editor dentro do mongosh
, use o comando config.set() .
config.set( "editor", "nano" )
O editor do nano
abrirá quando você executar o edit
no console do mongosh
.
Observação
mongosh
tentará usar qualquer programa configurado. Um programa como less
funcionará. Outros programas, como o grep
, podem falhar ou ter resultados inesperados.
Editando um comando
Utilize edit
para iniciar uma sessão de edição. Se o editor já tiver sido usado na sessão atual do console, o editor abrirá a última edição.
A seguinte declaração tem um erro de sintaxe. Na linha destacada está faltando uma vírgula:
// WARNING: This code contains an error db.users.insertMany( [ { "name": "Joey", "group": "sales" } { "name": "Marie", "group": "sales" }, { "name": "Elton", "group": "accounting" }, { "name": "Paola", "group": "marketing" } ] )
Para configurar o exemplo:
Copie o código de exemplo.
Insira
edit
para iniciar uma sessão de edição.Cole o código de exemplo no editor.
Sair do editor.
Pressione
enter
.
Quando você sai do editor, ele copia o código de exemplo para a linha de comando. mongosh
retorna um erro quando o código é executado.
Para recarregar o código de exemplo, introduza edit
sem quaisquer argumentos.
// WARNING: This code contains an error db.users.insertMany([{ "name": "Joey", "group": "sales" } { "name": "Marie", "group": "sales" }, { "name": "Elton", "group": "accounting" }, { "name": "Paola", "group": "marketing" } ])
O código é reformatado para facilitar a edição. Nesse caso, a vírgula ausente na linha destacada faz com que os documentos sejam desalinhados.
Usando o Visual Studio como Editor Externo
O Visual Studio requer um parâmetro especial para funcionar como um editor externo. Utilize o --wait
com Visual Studio.
Definir uma variável de ambiente:
export EDITOR="/usr/local/bin/code --wait"
Você também pode definir o editor com config.set(). Se o Visual Studio estiver no seu PATH
, abra o mongosh
e execute:
config.set("editor", "code --wait")
Se você usar o Visual Studio, você também pode usar a extensão MongoDB VS Code.
Desativar o editor externo
Desmarque a variável editor
em mongosh
:
config.set("editor", null)
Se o ambiente do EDITOR
estiver configurado, desmarque-o também. A partir de mongosh
, execute:
process.env.EDITOR = ''
Se você desmarcar EDITOR
usando process.env
, a alteração não persistirá depois de sair de mongosh
. Para tornar a alteração persistente, desmarque EDITOR
do seu shell.
Usando o Editor interno
Iniciar o editor:
.editor
mongosh
entra no modo editor. Insira seu código:
// Entering editor mode (^D to finish, ^C to cancel) var albums = [ { "artist": "Beatles", "album": "Revolver" }, { "artist": "The Monkees", "album": "Head"} ] db.music.insertMany( albums )
Para deixar o editor,
Pressione
<ctrl> + d
para sair e executar a sua funçãoPressione
<ctrl> + c
para sair sem executar a sua função
Objetos declarados usando .editor
, como albums
neste exemplo, são adicionados ao escopo global. Eles estarão disponíveis após o fechamento do .editor
.