2017-07-17 55 views
0

在MongoDB Shell中,有一个命令edit <variable>来检查/修改由EDITOR指定的您最喜爱的编辑器的值。如何为Mongo Shell定义别名

但是我怎样才能为edit创建一个别名,比如e <variable>

回答

0

edit命令是mongo shell(在MongoDB GitHub库中的src/mongo/shell/dbshell.cpp#L470)的C++实现的一部分。本地函数(如edit)在交互式shell解释器中公开,但不容易通过JavaScript调用或覆盖(请参阅:Differences Between Interactive and Scripted mongo)。

至于在MongoDB 3.4我不知道任何明显的方式来别名本地代码的功能,除非你热衷于修改源代码和构建自定义mongo外壳。

但是,如果您正在为mongo shell编写任何重要脚本,更值得推荐的方法是使用load(...)命令而不是edit。的load()超过edit

优点包括:

  • 能够编辑多个变量和函数在一个文件中。
    • edit只编辑单个变量或函数。
  • 检测JavaScript语法错误关闭之前,你的草案
    • edit检测更改时,编辑器关闭的临时文件;与load()你可以通过保存在你的编辑器而不关闭,来测试连续的编辑。
    • 如果edit文件关闭时遇到任何JavaScript语法错误,您将失去草稿并且外壳中的变量将保持原始值。
  • 您的工作文件保存在非临时路径中,因此您可以将它们提交到版本控制。