1. 启动服务器:sudo mongod

2. 开启客户端:sudo mongo

客户端shell命令:

       查看当前连接数据库指向(默认test库):db [若启动时指定--nodb参数,不会连接到任何数据库]

       改变数据库的指向:use db_name

      下面是MongoDB的支持的数据类型:

  • null
  • 布尔  布尔类型有两个值'true'和'false'。
  • 64位浮点数值   shell默认使用64位浮点型整数值,下面的表示都是浮点数:{"X":3.1415}或{"X":3}
  • 整数数值  可以使用NumberInt类(4byte signed int)或NumberLong(8byte signed int)类表示,{"X":NumberInt("3")}或{"X":NumberLong("3")}
  • 字符串
  • 对象id
  • 日期
  • 正则表达式  文档中可以包含正则表达式,采用JavaScript的正则表达式语法: {"X" : /foobar/i}
  • 代码  文档中还可以包含JavaScript代码:{"X" : function() { /* …… */ }}
  • 二进制数据
  • 最大值
  • 最小值
  • 未定义  文档中也可以使用未定义类型:{"X":undefined}
  • 数组  值的集合或者列表可以表示成数组:{"X" : ["a", "b", "c"]}
  • 内嵌文档  文档可以包含别的文档,也可以作为值嵌入到父文档中,数据可以组织得更自然些,不用非得存成扁平结构的:{"X" : {"food" : "noodle"}}

查看帮助文档:help,查看数据库级别的帮助:db.help(),查看集合级别的帮助:db.coll.help()

         编辑复合变量:EDITOR="/usr/bin/vim" 之后则可使用“edit var_name”命令,编辑好后保存退出编辑器,变量会被重新解析然后加载回shell执行。

         可以使用db.collection_name获取一个集合的内容,但是,如果这个集合名称中包含保留字或者无效的js属性的名称,它就不能正常工作了。因此可以使用getCollection函数,当然也可以使用数组访问语法(x['y'])。

其它:

         连接任何MongoDB实例:mongo some_host:some_port/db_name

         使用shell执行脚本:mongo script1.js script2.js ...

         指定某主机上运行脚本:mongo --quiet some_host:some_port/db_name script1.js script2.js ... [--quiet:让shell不打印"MongoDB shell version ..."提示]

shell辅助函数对应的js函数,例如:show collections =db.getCollectionNames()

         在shell中执行命令行程序:run("ls", "-l", "/home/my_user/my_scripts")

         如果某些脚本会被频繁的加载,可以将他们添加到.mongroc.js文件中,这个脚本会在启动shell时自动运行。为了实用,可以使用这个脚本创建一些自己需要的全局变量,或者是为太长的名字创建一个简短的别名,也可以重写内置的函数。

         例如:移除那些比较危险的shell辅助函数。


var no = function() {
            printf("Not on my watch.");
        }
        // 禁止删除数据库
        db.dropDatabase = DB.prototype.dropDatabase = no;
        // 禁止删除集合
        DBCollection.prototype.drop = no;
        // 禁止删除索引
        DBCollection.prototype.dropIndex = no;