【MongoDB】配置mongo Shell

tech2023-02-26  98

本章内容:

自定义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)