runoops.com

配置mongo Shell

自定义提示

您可以通过promptmongo外壳中设置变量来修改提示的内容 。该prompt变量可以包含字符串以及JavaScript代码。如果prompt拥有返回字符串的函数,则mongo可以在每个提示中显示动态信息。

您可以在.mongorc.js文件中添加提示的逻辑,以在每次启动mongoShell 时设置提示 。

自定义提示以显示操作数

例如,要mongo使用当前会话中发出的操作数创建一个shell提示,请在shell中定义以下变量mongo

cmdCount = 1;
prompt = function() {
             return (cmdCount++) + "> ";
         }

提示将类似于以下内容:

1>
2>
3>

自定义提示以显示数据库和主机名

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

host = db.serverStatus().host;

prompt = function() {
             return db+"@"+host+"$ ";
         }

提示将类似于以下内容:

test@myHost1$

自定义提示以显示时间和文档计数

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

prompt = function() {
           return "Uptime:"+db.serverStatus().uptime+" Documents:"+db.stats().objects+" > ";
         }

提示将类似于以下内容:

Uptime:5897 Documents:6 >

mongoShell中使用外部编辑器

您可以在mongoshell中使用自己的编辑器,方法是设置EDITOR启动 Shell 之前的环境变量mongo

export EDITOR=vim
mongo

进入mongo shell后,可以通过输入或使用指定的编辑器进行编辑,如以下示例所示:edit <variable>edit <function>

1.定义一个函数myFunction

myFunction

2.使用编辑器编辑函数:

edit myFunction

该命令应打开vim编辑会话。完成编辑后,保存并退出vim编辑会话。

3.在mongo shell程序中,键入myFunction以查看函数定义

myFunction

结果应该是保存的编辑中的更改:

function myFunction() {
    print("This was edited");
}

注意:当mongoshell解释在外部编辑器中编辑的代码时,它可能会修改函数中的代码,具体取决于JavaScript编译器。例如,mongo可能会转换1+1为 2或删除评论。实际更改仅影响代码的外观,并且会根据所使用的JavaScript版本而有所不同,但不会影响代码的语义。

更改mongoShell批处理大小

可以设置DBQuery.shellBatchSize属性以从默认值更改文档数20,如以下示例中将其设置为10

DBQuery.shellBatchSize = 10;