使用命令编辑器
控制台mongosh是面向行的。但是,您也可以使用编辑器来处理多行函数。有两种选择:
使用外部编辑器
该命令适用于外部编辑器。您可以在运行的 shell 中 或从.mongosh editmongoshmongosh
如果在两个位置都配置了编辑器,则其中配置的编辑器mongosh优先。
要在 中设置编辑器mongosh,请使用 config.set()命令。
config.set( "editor", "vi" )
看设置外部编辑器 有关更多示例。
edit您可以通过三种方式使用:
开始新的编辑会话
自行输入edit开始新的编辑会话。
edit
如果您在没有任何参数的情况下启动编辑会话,则编辑器将打开并加载最后的编辑。看例子,编辑命令。
编辑变量
如果控制台命名空间中存在参数,您可以使用edit来更新它。
var albums = [ ];
edit albums
- 变量
albums设置在第一行。 - 第二行打开外部编辑器来编辑 的值
albums。
编辑声明
要在外部编辑器中编辑语句,请使用edit如下语句调用db.collection.insertMany().
edit db.digits.insertMany( [] )
编辑db.music.insertMany( [] )并退出外部编辑器后,mongosh控制台可能如下所示:
prompt> db.digits.insertMany([{ "zero": 0 }, { "one": 1 }, { "two": 2 }])
当您退出外部编辑器时,语句被复制到控制台输入行,准备运行。它不会自动运行。按<enter>运行语句或<ctrl> + c取消它。
使用内置编辑器
该.editor命令提供基本的多行编辑功能。
编辑器不保存代码。当您关闭内置编辑器时,您的编辑将加载到全局范围内。如果您的编辑调用任何函数或命令,它们将在您关闭编辑器时运行。
要启动内置编辑器:
.editor
输入<ctrl> + d退出并运行您的功能。
例子:
设置外部编辑器
如果EDITOR在运行的 shell 中设置了环境变量 mongosh,该edit命令将使用该编辑器。
如果还设置了该属性, 将改用该程序。该 属性覆盖环境变量。mongosh editormongosheditor``EDITOR
设置EDITOR环境变量
环境变量应在启动前设置 mongosh。
bash在or中设置环境变量zsh:
export EDITOR=vi
当您在 控制台中运行时,编辑vi器将打开。editmongosh
笔记:
您还可以
mongosh使用process.env.<VARIABLE>.从以下位置设置 EDITOR 环境变量
mongosh:process.env.EDITOR = 'nano'
设置editor属性
要从内部设置nano为编辑器mongosh,请使用config.set()命令
config.set( "editor", "nano" )
当您在 控制台中运行时,编辑nano器将打开。editmongosh
笔记:
mongosh将尝试使用配置的任何程序。像这样的程序less会起作用。其他程序(例如grep)可能会崩溃或产生意外结果。
编辑命令
用于edit启动编辑会话。如果编辑器已在当前控制台会话中使用,则编辑器将打开上次编辑。
以下语句有语法错误。突出显示的行缺少逗号:
// 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" }
] )
要设置示例:
- 复制示例代码。
- 输入
edit开始编辑会话。 - 将示例代码粘贴到编辑器中。
- 退出编辑器。
- 按
enter。
当您退出编辑器时,它会将示例代码复制到命令行。mongosh代码运行时返回错误。
要重新加载示例代码,请edit不带任何参数输入。
// 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"
}
])
重新格式化代码以便于编辑。在这种情况下,突出显示的行中缺少逗号会导致文档未对齐。
使用 Visual Studio 作为外部编辑器
Visual Studio 需要一个特殊参数才能用作外部编辑器。--wait与 Visual Studio 一起使用。
设置环境变量:
export EDITOR="/usr/local/bin/code --wait"
您还可以使用config.set()设置编辑器。如果 Visual Studio 在您的 中PATH,请打开 mongosh并运行:
config.set("editor", "code --wait")
如果您使用 Visual Studio,您还可以使用MongoDB VS 代码扩展。
取消设置外部编辑器
取消editor设置变量mongosh:
config.set("editor", null)
如果EDITOR配置了环境,也请取消设置。从 mongosh,运行:
process.env.EDITOR = ''
如果您取消设置EDITOR,使用process.env更改将不会在退出后持续存在mongosh。要使更改持久化,请EDITOR从您的 shell 中取消设置。
使用内置编辑器
启动编辑器:
.editor
mongosh进入编辑器模式。输入您的代码:
// Entering editor mode (^D to finish, ^C to cancel)
var albums =
[
{ "artist": "Beatles", "album": "Revolver" },
{ "artist": "The Monkees", "album": "Head"}
]
db.music.insertMany( albums )
离开编辑器,
- 按
<ctrl> + d退出并运行您的功能 - 按
<ctrl> + c退出而不运行您的功能
使用 声明的对象.editor,如albums本例中所示,被添加到全局范围。它们在关闭后可用 .editor。
翻译:韩鹏帅