本章内容:
自定义prompt(Customize the Prompt)在mongo Shell中使用外部编辑器(Use an External Editor in the mongo Shell)更改mongo Shell批处理大小(Change the mongo Shell Batch Size)什么是prompt?
prompt是 javascript语言中的一个方法,主要用处是显示prompt对话框。用于显示可提示用户进行输入的对话框。
<script type="text/javascript">
function disp_prompt(){
var name=prompt("Please enter your name","")
if (name!=null && name!=""){
document.write("Hello " + name + "!")
}
}
</script>
注意
有关新的MongoDB Shell、 mongosh的信息,请参阅mongosh文档。要了解两个shell之间的区别,请参阅mongo Shell和mongosh对比。
在mongo shell中,通过设置变量prompt值 来修改prompt显示的内容。
变量prompt 可以包含字符串以及JavaScript代码。
如果prompt包含返回字符串的函数,则mongo可以在每个prompt中显示动态信息。
每次启动mongo shell时,可以在.mongorc.js文件中添加提示逻辑来设置prompt信息。
例如,要使用当前session中发出的操作数创建mongo shell prompt,请在mongo shell中定义以下变量:
cmdCount = 1; prompt = function() { return (cmdCount++) + "> "; }prompt将类似于以下内容:
1> 2> 3> ...
实践
要以<database> @ <hostname> $的形式创建mongo shell prompt,请定义以下变量:
host = db.serverStatus().host; prompt = function() { return db+"@"+host+"$ "; }prompt将类似于以下内容:
test @ myHost1 $
实践
要创建一个包含系统正常运行时间和当前数据库中文档数的mongo shell prompt,请在mongo shell中定义以下提示变量:
prompt = function() { return "Uptime:"+db.serverStatus().uptime+" Documents:" + db.stats().objects+" > "; }prompt将类似于以下内容:
Uptime:5897 Documents:6 >实践
在启动mongo shell前设置EDITOR环境变量,就可以在mongo shell中使用自己的编辑器。
export EDITOR=vim mongo在mongo shell中,键入edit <variable>或edit <function>后就可以使用指定的编辑器进行编辑内容,如以下示例所示:
1.定义函数,例如myFunction:
function myFunction () { }2.编辑函数,myFunction:
edit myFunction该命令应打开vim编辑会话。完成编辑后,保存并退出vim编辑会话。
3.在mongo shell中,键入myFunction以查看函数定义:
myFunction结果应该是保存的编辑中的更改:
function myFunction() { print("This was edited"); }注意
当mongo shell编译在外部编辑器中编辑的代码时,可能会修改函数中的代码,具体修改取决于JavaScript编译器。例如,mongo可以将1 + 1转换为2或将代码中的注释删除。这种更改仅影响代码的外观,并且不同的JavaScript版本而有所不同,但不会影响代码的语义。
db.collection.find()用于从集合中检索文档,它是一个JavaScript方法。
db.collection.find()方法将游标返回到结果。
在mongo shell中,如果返回的游标未赋值给一个变量(使用var关键字赋值),则该游标会自动迭代多达20次,这样最多打印与查询匹配的前20个文档。此时, mongo shell 会提示“Type ’it’(键入 it)”,输入it后可以再次迭代20次。
通过设置DBQuery.shellBatchSize属性,以将文档数从默认值20更改,例如设置为10:
DBQuery.shellBatchSize = 10;实践
1.链接 mongo shell,D:\MongoDB\Server\4.0\bin>mongo --port 27017 。
2.切换数据库并查看集合test_score的数据:use xhb,db.test_score.find() 。
输入it,显示更多数据。
3.设置DBQuery.shellBatchSize属性,改变显示文档数。
DBQuery.shellBatchSize = 10;
DBQuery.shellBatchSize = 100;
参考链接:https://docs.mongodb.com/manual/tutorial/configure-mongo-shell/