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

Usar um Editor para Comandos

Nesta página

  • Usando um editor externo
  • Uso do editor incorporado
  • Exemplos

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.

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:

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.

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.

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.

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.

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 .

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.

Observação

Você também pode definir variáveis de ambiente de dentro mongosh usando process.env.<VARIABLE>.

Configurar a variável de ambiente EDITOR a partir do mongosh:

process.env.EDITOR = 'nano'

A variável de ambiente só é atualizada para o mongoshatual. A atualização não persiste quando mongosh sai.

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.

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:

  1. Copie o código de exemplo.

  2. Insira edit para iniciar uma sessão de edição.

  3. Cole o código de exemplo no editor.

  4. Sair do editor.

  5. 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.

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.

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.

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ção

  • Pressione <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.

Voltar

Configurar