配置mongo Shell
在本页面
[success] Note
下面的文档是MongoDB服务器下载.中包含的
mongo
shell。有关新的MongoDB Shell ,mongosh的信息,请参考mongosh文档。要了解这两种shell的区别,请参阅Comparison of the mongo Shell and mongosh.
自定义提示
您可以通过在 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 = 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后,您可以通过输入
edit <variable
>或edit <function
>使用指定的编辑器进行编辑,如以下示例所示:
1.定义一个函数myFunction
:
function myFunction () { }
2.使用编辑器编辑函数:
edit myFunction
该命令将打开vim
编辑会话。 完成编辑后,保存并退出vim
编辑会话。
3.在mongo
shell中,键入myFunction
以查看函数定义:
myFunction
展示的是已经保存编辑后的结果:
function myFunction() {
print("This was edited");
}
[success] Note
当mongo shell解释在外部编辑器中编辑的代码时,它可能会修改函数中的代码,具体取决于JavaScript编译器。 例如,mongo可以将1 + 1转换为2或删除注释。 实际更改仅影响代码的外观,并且会根据所使用的JavaScript版本而有所不同,但不会影响代码的语义。
改变mongo shell(batchSize)
db.collection.find()
方法是用于从集合中检索文档的JavaScript方法。db.collection.find()
方法将游标返回到结果。
但是,在mongo shell中,如果未使用var关键字将返回的游标分配给变量,则该游标会自动迭代最多20次,来打印与查询匹配的前20个文档。 mongo shell将提示 输入it
以使其再次迭代20次。
您可以设置DBQuery.shellBatchSize
属性,以更改文档数默认值20,如以下示例中将其设置为10:
DBQuery.shellBatchSize = 10;
译者:王恒 金江
校对:杨帅
参见