La mongosh La consola está orientada a líneas. Sin embargo, también puedes utilizar un editor para trabajar con funciones multilínea. Hay dos opciones:
Utilice el comando
editcon un editor externo.Utiliza el comando
.editor, un editor con funcionalidad incorporada.
Usar un editor externo
El comando mongosh edit funciona con un editor externo. Puedes configurar un editor externo en el shell que ejecute mongosh o desde dentro de mongosh.
Si hay editores configurados en ambas ubicaciones, el editor configurado dentro de mongosh tendrá prioridad.
Para configurar un editor dentro de mongosh, utiliza config.set(). comando.
config.set( "editor", "vi" )
Consulta configurar el editor externo para más ejemplos.
Puede usar edit de tres maneras:
Inicia una nueva sesión de edición
Introduce edit por sí solo para iniciar una nueva sesión de edición.
edit
Si inicias una sesión de edición sin ningún argumento, el editor se abre con la última edición cargada. Consulta el ejemplo, Editar un comando.
Editar una variable
Si un argumento existe en el namespace de la consola, se puede usar edit para actualizarlo.
var albums = [ ]; edit albums
La variable
albumsse establece en la primera línea.La segunda línea abre el editor externo para editar el valor de
albums.
Editar una instrucción
Para editar una instrucción en el editor externo, invocar edit con una instrucción como db.collection.insertMany().
edit db.digits.insertMany( [] )
Después de editar db.music.insertMany( [] ) y salir del editor externo, la consola mongosh podría tener este aspecto:
prompt> db.digits.insertMany([{ "zero": 0 }, { "one": 1 }, { "two": 2 }])
Cuando cierras el editor externo, la instrucción se copia en la línea de entrada de la consola, lista para ejecutarse. No se ejecuta automáticamente. Presiona <enter> para ejecutar la instrucción o <ctrl> + c para cancelarla.
Uso de la funcionalidad incorporada
El comando .editor proporciona capacidades básicas de edición de varias líneas.
El editor no guarda el código. Cuando se cierra el editor integrado, las ediciones se cargan en el ámbito global. Si la edición llama a alguna función o comando, se ejecutará cuando se cierre el editor.
Para iniciar el editor incorporado:
.editor
Introduce <ctrl> + d para salir y ejecutar tu función.
Ejemplos
Establece el Editor Externo
Si la variable de entorno EDITOR está definida en el shell que ejecuta mongosh, el comando edit usará ese editor.
Si la propiedad mongosh editor también está configurada, mongosh utilizará ese programa en su lugar. La propiedad editor anula la variable de entorno EDITOR.
Establezca la variable de entorno EDITOR
La variable de entorno debe configurarse antes de iniciar mongosh.
Configura una variable de entorno en bash o zsh:
export EDITOR=vi
El editor vi se abrirá cuando ejecutes edit en la consola mongosh.
Establecer la propiedad editor
Para configurar nano como el editor desde mongosh, usa el config.set() comando.
config.set( "editor", "nano" )
El editor nano se abrirá cuando ejecutes edit en la consola mongosh.
Nota
mongosh intentará usar cualquier programa que esté configurado. Un programa como less funcionará. Otros programas, como grep, pueden fallar o tener resultados inesperados.
Edición de un comando
Use edit para iniciar una sesión de edición. Si el editor ya se utilizó en la sesión actual de la consola, el editor abre la última edición.
La siguiente instrucción contiene un error de sintaxis. Falta una coma en la línea resaltada:
// 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 el ejemplo:
Copiar el código de ejemplo.
Ingrese
editpara iniciar una sesión de edición.Pegar el código de ejemplo en el editor.
Salga del editor.
Pulsa
enter.
Cuando sales del editor, copia el código de ejemplo en la línea de comandos. mongosh devuelve un error cuando se ejecuta el código.
Para recargar el código de ejemplo, introduce edit sin ningún argumento.
// 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" } ])
El código se reformatea para facilitar su edición. En este caso la ausencia de una coma en la línea resaltada provoca que los documentos estén desalineados.
Usar Visual Studio como editor externo
Visual Studio requiere un parámetro especial para funcionar como editor externo. Utilizar --wait con Visual Studio.
Establece una variable de entorno:
export EDITOR="/usr/local/bin/code --wait"
También pueden configurar el editor con config.set(). Si Visual Studio está en su PATH, abra mongosh y ejecute:
config.set("editor", "code --wait")
Si usas Visual Studio, también puedes utilizar la MongoDB VS Code Extension.
Desactive el Editor Externo
Desactivar la variable editor en mongosh:
config.set("editor", null)
Si se ha configurado el entorno EDITOR, también se debe desactivarlo. Desde mongosh, ejecuta:
process.env.EDITOR = ''
Si deseleccionas EDITOR usando process.env, el cambio no persistirá después de salir de mongosh. Para hacer que el cambio sea permanente, desactiva EDITOR en tu shell.
Usando el editor de funcionalidad incorporada
Inicie el editor:
.editor
mongosh entra en modo editor. Ingresa tu 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 salir del editor,
Presiona
<ctrl> + dpara salir y ejecutar tu funciónPresione
<ctrl> + cpara salir sin ejecutar su función
Los objetos que se declaran usando .editor, como albums en este ejemplo, se agregan al ámbito global. Están disponibles tras el cierre de .editor.