
2.2 使用mongo shell
mongo shell是一个连接MongoDB的交互式客户端,可以通过它来执行数据的查询、管理等一系列操作。
1.连接数据库
执行下面的命令:

其中,--port选项用于指定数据库的监听端口。当然,默认连接的是本地数据库,如果需要连接远程数据库,则可以指定--host选项,代码如下:

进入mongo shell之后,客户端会建立一个到服务器的连接。
接下来,使用show databases命令查看数据库列表,具体如下:

这里发生了一点错误,原因是当前的shell连接还没有进行用户鉴权。此时可以使用admin用户进行鉴权,代码如下:

可以看到,在用户鉴权成功之后,show databases输出了所有的数据库列表,以及每个库的大小。如果读者觉得用户鉴权的动作太过烦琐,则可以在连接时就把鉴权信息加上,代码如下:

2.JavaScript支持
mongo shell是基于JavaScript语法的,在shell中执行JavaScript代码,如下:

MongoDB使用了SpiderMonkey作为其内部的JavaScript解释器引擎,这是由Mozilla官方提供的JavaScript内核解释器,该解释器也被同样用于大名鼎鼎的Firefox浏览器产品之中。SpiderMonkey对ECMA Script标准兼容性非常好,可以支持ECMA Script 6。
可以通过下面的命令检查JavaScript解释器的版本:

注意:在MongoDB 3.2版本之前,采用了V8作为JavaScript解释器引擎,新版本中已经将其废弃。
借由高级的SpiderMonkey引擎,我们可以在mongo shell中使用ES 6风格的代码,如下:

3.执行脚本
除了交互的方式,mongo shell也支持以非交互的方式执行脚本。
使用--eval可以指定一段JavaScript代码:

或者,直接指定一个JavaScript文件:

4.常用命令
mongo shell常用命令见表2-4。
表2-4 mongo shell常用命令

续表
