配置 mongo Shell

在本页面

自定义提示

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

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

自定义提示以显示操作数

例如,要创建具有当前会话中发出的操作数的mongo shell 提示符,请在mongo shell 中定义以下变量:

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

提示将类似于以下内容:

1>
2>
3>

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

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

host = db.serverStatus().host;

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

提示将类似于以下内容:

test@myHost1$

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

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

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

提示将类似于以下内容:

Uptime:5897 Documents:6 >

在 mongo Shell 中使用外部编辑器

通过在启动mongo shell 之前设置 EDITOR环境变量,可以在mongo shell 中使用自己的编辑器。

export EDITOR=vim
mongo

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

  • 定义一个函数myFunction
function myFunction () { }
  • 使用编辑器编辑函数:
edit myFunction

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

  • mongo shell 中,键入myFunction以查看函数定义:
myFunction

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

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

Note

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

更改 mongo Shell 批处理大小

db.collection.find()方法是从collection检索文档的 JavaScript 方法。 db.collection.find()方法将cursor返回到结果;但是,在mongoShell 程序中,如果未使用var关键字将返回的游标分配给变量,则该游标会自动重复进行多达 20 次以最多打印与查询匹配的前 20 个文档。 mongoShell 程序将提示Type it再次迭代 20 次。

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

DBQuery.shellBatchSize = 10;