mongo Shell的使用小技巧
博文转载地址: http://blog.csdn.net/u011235983/article/details/9768179
mongo shell是MongoDB的交互式的JavaScript shell。我们可以用它来管理操作数据库,还可以用来运行JavaScript程序。下面介绍一些mongo
shell的使用技巧,包括修改默认的提示符、在shell中使用外部编辑器和在mongo shell中使用快捷键。
mongo shell的提示符 在连接不同的节点时,mongo shell的提示符不一样:单节点默认的提示符是:”>”;
复制集默认的提示符会显示复制集的名字和复制集的状态,比如:“replsetname:PRIMARY>”;
路由mongos默认的提示符是:”mongos>”
我们可以通过设置prompt变量来自定义提示符。在mongo shell中运行下面的代码就可以在mongo shell的提示符中显示数据库的名字和机器名:
假设当前连接的是test数据库,提示符显示的是”local@hostname”,在切换数据库到local数据库后,显示就变成“local@hostname”了。
如果我们需要在连接复制集时,既显示复制集的状态,又显示当前连接的数据库,可以使用下面的设置:(这个设置在连接主节点时,显示的是主节点所在的机器名)
默认的提示符在连接mongos时,会显示”mongos>”,这有助于帮助我们了解当前连接的是一个集群。通过下面的设置我们可以在连接到mongos时,既显示当前连接的是mongos,又显示当前连接的数据库名:
我们可以把上面的代码组合起来,设置成我们自定义的mongo shell的提示符:
如果我们每次在进入mongo shell以后才运行上面的代码来自定义提示符会很麻烦,我们可以通过下面两种方式来简化:
把上面的代码存为shellConfig.js,在进入mongo shell后,运行load(“<path>/shellConfig.js”)就可以加载自定义的Shell提示符了。我们需要把<path>替换成shellConfig.js的路径。
mongo在启动时会自动加载用户的home目录下的.mongorc.js文件,所以我们也可以把上面的代码存放到用户home目录下的.mongorc.js文件里。在每次启动mongo shell的时候,就会自动加载自定义的提示符。如果不需要加载自定义的提示符,我们可以在启动mongo shell时使用–norc选项。
mongo shell中使用外部编辑器
在前面的《MongoDB的聚合框架》的博客里,我们介绍了MongoDB的聚合操作的一个例子,如果我们在mongo
shell里编写和调试这个聚合操作的命令,每次修改或编辑都比较困难。我们可以在运行mongo shell前设置EDITOR变量,在进入mongo shell后就能用edit命令来使用外部编辑器。
在编辑match变量时,我们可以用vim来编辑代码:
保存match变量并退出当前编辑器后,就能直接使用这个match变量了:
同理编辑unwind, group, sort, skip, limit, project这些变量,就可以运行例子里完整的聚合操作的命令:
如果我们想要把查询的时间从2012年7月1号改成2012年8月1号,我们只需要修改match变量,就可以再次运行这个聚合操作:
mongo shell的快捷键:
在mongo shell里,我们可以使用Tab键来自动补充命令,比如我们敲了”db.”的命令后,用Tab键就可以提示所有以”db.”开头的命令:
此外,我们还可以用Ctrl+L或者cls命令来清屏,类似于Unix/Linux里的clear命令。更多的快捷键可以参考MongoDB的文档: http://docs.mongodb.org/manual/reference/program/mongo/#keyboard-shortcuts
参考文档:
http://docs.mongodb.org/manual/tutorial/getting-started-with-the-mongo-shell/
http://docs.mongodb.org/manual/faq/mongo/#faq-the-mongo-shell
http://www.kchodorow.com/blog/2011/06/27/ps1/