Nosql Mongodb之旅(16)—MongoDB命令行操作指定命令和指定文件

来源:互联网 发布:网络电视如何更新节目 编辑:程序博客网 时间:2024/05/18 03:22

MongoDB shell 不仅仅是一个交互式的shell,它也支持执行指定javascript 文件,也支持执行指定的命令片断。有了这个特性,就可以将MongoDB 与linux shell 完美结合,完成大部分的日常管理和维护工作。

    执行指定命令

    例如,需要查询test 库的t1 表中的记录数有多少,常用方法如下:

[plain] view plaincopy
  1. [root@localhost bin]# ./mongo test  
  2. MongoDB shell version: 1.8.1  
  3. connecting to: test  
  4. > db.t1.count()  
  5. 7  
  6. >  

    通过命令行eval参数直接执行语句:   

[plain] view plaincopy
  1. [root@localhost bin]# ./mongo test --eval "printjson(db.t1.count())"  
  2. MongoDB shell version: 1.8.1  
  3. connecting to: test  
  4. 7  

    执行指定文件

    如果涉及到很多的操作后,才能得到结果,那么用eval 的方式来做的话是不可能完成的,那么更灵活的执行指定文件的方式就派上用场了。例如我们仍然要查看test 库t1 表中的记录数:

    t1_count.js 就是我们要执行的文件,里面的内容如下

[plain] view plaincopy
  1. [root@localhost bin]# cat t1_count.js  
  2. var totalcount = db.t1.count();  
  3. printjson('Total count of t1 is : ' + totalcount);  
  4. printjson('-----------------------');  

    下面我们将执行这个文件

[plain] view plaincopy
  1. [root@localhost bin]# ./mongo t1_count.js  
  2. MongoDB shell version: 1.8.1  
  3. connecting to: test  
  4. "Total count of t1 is : 7"  
  5. "-----------------------"  

    大家可以看到最终得到t1表的记录数7,那么一些不必要的说明性文字我们不希望出现,怎么处理?

[plain] view plaincopy
  1. [root@localhost bin]# ./mongo --quiet t1_count.js  
  2. "Total count of t1 is : 7"  
  3. "-----------------------"  
  4. [root@localhost bin]#  

    通过指定quiet 参数,即可以将一些登录信息屏蔽掉,这样可以让结果更清晰。

0 0