【MongoDB】配置mongo Shell

本章内容:

  • 自定义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对比

 

一、自定义prompt

在mongo shell中,通过设置变量prompt 来修改prompt显示的内容。

变量prompt 可以包含字符串以及JavaScript代码。

如果prompt包含返回字符串的函数,则mongo可以在每个prompt中显示动态信息。

每次启动mongo shell时,可以在.mongorc.js文件中添加提示逻辑来设置prompt信息。

1.自定义prompt显示数字结果

例如,要使用当前session中发出的操作数创建mongo shell prompt,请在mongo shell中定义以下变量:

cmdCount = 1;

prompt = function() {

             return (cmdCount++) + "> ";

         }

prompt将类似于以下内容:

1>

2>

3>
...

 

实践

2.自定义prompt显示数据库和主机名

要以<database> @ <hostname> $的形式创建mongo shell prompt,请定义以下变量:

host = db.serverStatus().host;

prompt = function() {

             return db+"@"+host+"$ ";

             }

prompt将类似于以下内容:

test @ myHost1 $

 

实践

3.自定义prompt以显示时间和文件计数

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

prompt = function() {

              return "Uptime:"+db.serverStatus().uptime+" Documents:" + db.stats().objects+" > ";

         }

prompt将类似于以下内容:

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.编辑函数,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方法。

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/

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值