自定义提示

你可以通过在 mongo shell 中设置变量 prompt 来修改提示的内容. prompt 变量可以保存字符串以及 JavaScript 代码. 如果 prompt 包含返回字符串的函数, mongo 可以在每个提示中显式动态信息.

你可以在 .mongorc.js 文件中添加提示的逻辑以便在你每次启动 mongo shell 的时候进行提示.

自定义提示去显示操作的数量

例如, 创建一个在当前会话中显示带有操作执行数量的 mongo shell 提示, 在 mongo shell 中定义下面的变量:

cmdCount = 1;

prompt = function() {
    return (cmdCount++) + "> ";
}

然后提示将会类似以下内容:

1>
2>
3> 

自定义提示显示数据库名和主机名

<database>@<hostname>$ 的形式创建 mongo shell 提示符, 定义以下变量:

host = db.serverStatus().host;

prompt = function() {
    return db+"@"+host+"$ ";
}

然后提示将会类似以下内容:

test@myHost1$

自定义提示运行时间和文档数量

创建包含系统运行时间和当前数据库的文档数量的 mongo shell 提示, 在 mongo shell 中定义下面的 prompt 变量:

prompt = function() {
    return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+" > ";
}

然后提示将会类似以下内容:

Uptime:5897 Documents:6 >

mongo shell 中使用外部编辑器

在启动 mongo shell 之前, 你可以设置 EDITOR 环境变量以便于在 mongo shell 中使用你自己的编辑器.

export EDITOR=vim
mongo

进入 mongo shell, 你就可以通过输入 edit <variable> 或者 edit <function>, 使用指定的编辑器进行编辑, 如下所示:

  1. 定义一个函数 myFunction:

    function myFunction () { }
  2. 使用你的编辑器编辑函数:

    edit myFunction

    这个命令应该会打开 vim 编辑会话. 当编辑结束, 保存并对退出 vim 编辑会话.

  3. mongo shell, 输入 myFunction 来查看定义的函数.

    myFunction

    结果应该是你保存编辑的修改:

    function myFunction() {
        print("This was edited");
    }

注意:
由于 mongo shell 可以在外部编辑器解释编辑的代码, 所以可以修改函数中的代码, 这个取决于 JavaScript 编译器. 对于 mongo 可以将1+1转化为2或者删除评论. 实际的代码仅仅影响代码的外观, 并且将根据所使用的JavaScript版本而变化, 但不会影响代码的语义.

改变 mongo Shell 批处理大小

db.collection.find() 是从一个集合中检索文档的 JavaScript 方法. db.collection.find() 方法返回一个游标到结果. 然而, 在 mongo shell, 如果返回的游标没有分配给使用 var 关键字定义的变量. 然后游标会自动迭代20次, 以便输出匹配查询的前20个文档. mongo shell 会提示 Type it 再迭代20次.

你可以设置 DBQuery.shellBatchSize 属性去改变默认值是20的文档数量. 在下面的示例将其设置为10:

DBQuery.shellBatchSize = 10;

下一章: https://segmentfault.com/a/11...
本文地址: https://docs.mongodb.com/manu...


魔王卷子
940 声望33 粉丝

PHP程序员,专注于后端!