您可以在 mongo shell 中使用您自己的编辑器,方法是在启动 mongo shell 之前设置 EDITOR 环境变量。
在 Windows 中使用“set EDITOR=***”命令进行设置,如下:
C:UsersAdministrator>set EDITOR=notepad2
注意:notepad2 是一个轻量级的文本编辑器,该编辑器已经被我添加到 PATH中。
在 Linux 中使用“export EDITOR=notepad2”,通常我们在 Linux 中使用 VIM 或者 EMacs 编辑器。如下:
export EDITOR=vim # 或 export EDITOR=emacs
在 mongo shell 中,您可以通过键入 edit <variable> 或 edit<function> 来使用指定的编辑器进行编辑,如下面的示例所示:
(1)启动 mongo
# Windows 环境 C:UsersAdministrator> set EDITOR=notepad2 C:UsersAdministrator> mongo
(2)在 mongo 中定义一个函数 myFunc。如下:
MongoDB shell version v4.0.2-143-g7ea530946f connecting to: mongodb://127.0.0.1:27017 Implicit session: session { "id" : UUID("9bf72c3d-3aab-4af5-a553-f4879691f5a3") } MongoDB server version: 4.0.2-143-g7ea530946f > function myFunc(){}
(3)使用编辑器编辑该函数。如下:
> edit myFunc
命令应该打开 notepad2 编辑器。编辑完成后,保存并退出 notepad2 编辑器。如下图:
(4)在 mongo shell 中,键入 myFunc 以查看函数定义。如下:
> myFunc function myFunc(){ print("This was edited"); } >
注意:当 mongo shell 解释在外部编辑器中编辑的代码时,它可能会修改函数中的代码,这取决于JavaScript 编译器。例如:mongo 可以将 1+1 转换为 2 或删除注释。实际的更改只影响代码的外观,并将根据所使用的 JavaScript 版本而有所不同,但不会影响代码的语义。
参考文档:https://docs.mongodb.com/manual/tutorial/configure-mongo-shell