Docs 菜单
Docs 主页
/ /
旧版 mongo Shell

配置 Shellmongoshell

警告

以下文档涉及mongo Shell,包含在MongoDB Server下载中。有关新MongoDB Shell ()mongosh 的信息,请参阅mongosh文档。

要了解这两个 Shell 之间的差异,请参阅mongo shell和 mongosh 的比较。

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

您可以在.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$

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

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

然后,提示符将类似于以下内容:

Uptime:5897 Documents:6 >

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

export EDITOR=vim
mongo

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

  1. 定义函数myFunction

    function myFunction () { }
  2. 使用编辑器编辑函数:

    edit myFunction

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

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

    myFunction

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

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

注意

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

db.collection.find()方法是用于从集合中检索文档的JavaScript方法。 db.collection.find()方法返回指向结果的游标;但是,在mongo shell中,如果未将返回的游标分配给使用 var 关键字的变量,则该游标会自动迭代最多 20 次,以打印最多前 20 个文档,这些文档匹配查询。 mongo shell将提示 Type it 再迭代 20 次。

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

DBQuery.shellBatchSize = 10;

后退

旧版 mongo Shell

在此页面上