Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Docs 菜单
Docs 主页
/
MongoDB Manual
/ /

配置 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

在此页面上