h说明:英文原文地址:https://docs.mongodb.com/v3.2/tutorial/configure-mongo-shell/。
本文章属个人翻译,作个人学习之用,如有雷同,纯属巧合。如有错误之处,欢迎指正。
配置mongo Shell
自定义提示
通过在mongo
shell中设置prompt
变量,可以修改提示内容。prompt
变量可以保存字符串,也可以保存javascript 代码。若prompt
保存的是返回字符串的函数,mongo
可以在每次提示时显示动态信息。
可以在.mongorc.js文件中添加prompt逻辑,以设置每次启动mongo
shell后的提示。
自定义prompt,显示操作个数
例如,创建一个显示当前会话中执行的操作个数的mongo
shell,在mongo
shell中定义如下变量:
cmdCount = 1;
prompt = function() {
return (cmdCount++) + "> ";
}
prompt将会产生如下的结果:
1> 2> 3>
自定义prompt,显示数据库和主机名
要创建一个显示@$ prompt的mongo
shell,定义如下变量:
host = db.serverStatus().host;
prompt = function() {
return db+"@"+host+"$ ";
}
该prompt类似如下:
test@myHost1$
自定义prompt,显示启动时间和文档总数
要创建一个包含系统启动时间和当前数据库文档总数的mongo
shell prompt,在mongo
shell中定义如下prompt变量:
prompt = function() {
return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+" > ";
}
该prompt将类似如下:
Uptime:5897 Documents:6 >
在mongo shell中使用外部编辑器
你可以在mongo
shell中使用你自己的编辑器,只需要启动mongo
shell前设置EDITOR环境变量即可。
export EDITOR=vim
mongo
一旦在mongo
shell中,你可以输入 edit 或 edit 来用指定的变量编辑,如下:
-
定义一个函数
myFunction
function myFunction () { }
-
用你的编辑器编辑该函数
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 方法,该方法返回结果集的游标。然而,在mongo
shell中,如果返回的游标没有赋值给用var声明的变量,游标自动迭代20次,打印匹配查询的前20个文档。mongo
shell会提示”Type it”以迭代另一个20次。可以设置
DBQuery.shellBatchSize
属性来修改文档数量,而不是默认的20。如下示例把它设为10:DBQuery.shellBatchSize = 10;