自定义提示
你可以通过在 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>
, 使用指定的编辑器进行编辑, 如下所示:
定义一个函数
myFunction
:function myFunction () { }
使用你的编辑器编辑函数:
edit myFunction
这个命令应该会打开 vim 编辑会话. 当编辑结束, 保存并对退出 vim 编辑会话.
在 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…