0

在 MongoDB Shell 中,有一个命令edit <variable>可以通过 EDITOR 指定的您喜欢的编辑器检查/修改值。

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

4

1 回答 1

0

edit命令是mongoshell 的 C++ 实现的一部分(src/mongo/shell/dbshell.cpp#L470在 MongoDB GitHub 存储库中)。像这样的原生函数edit在交互式 shell 解释器中公开,但不容易通过 JavaScript 调用或覆盖(请参阅:交互式和脚本 mongo 之间的差异)。

在 MongoDB 3.4 中,除非您热衷于修改源代码并构建自定义mongoshell,否则我不知道有任何明显的方式来给本机代码函数起别名。

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

load()over的优点edit包括:

  • 能够在单个文件中编辑多个变量和函数。
    • edit仅编辑单个变量或函数。
  • 在关闭草稿之前检测 JavaScript 语法错误
    • edit当您的编辑器关闭临时文件时检测更改;您可以通过load()在编辑器中保存而不关闭来测试连续的编辑。
    • 如果edit在关闭文件时遇到任何 JavaScript 语法错误,您将丢失草稿,并且 shell 中的变量将保持原始值。
  • 您的工作文件保存在非临时路径中,因此您可以将它们提交给版本控制。
于 2017-07-17T13:09:00.407 回答