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
editcom 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 .
Configurar a EDITOR variável de ambiente do
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 propriedade editor
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
editpara 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> + dpara sair e executar a sua funçãoPressione
<ctrl> + cpara 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.