开源 nginx apache HTML5 shell 程序员 Ubuntu centos java Android google Python linux Windows php linux命令 Firefox 微软 mysql wordpress

MongoDB 常用数据库命令

mongoDB提供了广泛的数据库命令,除常用的create,read,update,delete之外所有功能。

命令是如何工作的

这里有个你比较熟悉的例子:drop,如果从Shell里删除一个collection,我们运行db.test.drop().实际上,在内部执行的是drop命令,跟下边用runCommand执行的操作是一样的

> db.runCommand({"drop" : "test"});
{"nIndexesWas" : 1,"msg" : "indexes dropped for collection","ns" : "test.test","ok" : true }

ok 表示是否执行成功

实际上,mongoDB的命令被实现为一种对叫$cmd的collection的特殊查询,runCommand只是使用参数进行了一次查询,所以我们的drop也可以这样写

db.$cmd.findOne({"drop" : "test"});

当mongoDB服务器接到一个对$cmd的查询时,使用一种特殊的逻辑来处理。几乎所有的驱动都提供了runCommand方法来执行命令,实际上这些命令都可以通过执行查询的方式来完成。

下边是一些最常用的命令:

  • buildInfo: {"buildInfo" : 1}, 返回mongoDB服务器版本和宿主操作系统的信息
  • collStats: {"collStats" : collection},给出指定collection的统计信息,包括数据大小,分配的存储控件,索引大小等
  • distinct: {"distinct" : collection, "key": key, "query": query} 返回在指定的collection里符合query条件的所有key的值
  • drop: {"drop" : collection}, 删除collection的说有数据
  • dropDatabase: {"dropDatabase" : 1}, 删除当前数据库的所有数据
  • dropIndexes: {"dropIndexes" : collection, "index" : name}, 删除collection上名字为name的索引
  • findAndModify:参见第3章
  • getLastError: {"getLastError" : 1[, "w" : w[, "wtimeout" : timeout]]}, 检查此连接上最后操作的错误或状态信息,可以指定一个选项,此命令将会阻塞直到w个salves复制了最后的那个操作或者时间超时(毫秒)
  • isMaster: {"isMaster" : 1}, 检查此服务器是master还是slave
  • listCommands: {"listCommands" : 1}, 列出此服务器上所有可用命令
  • listDatabases: {"listDatabases" : 1},列出服务器上所有数据库
  • ping: {"ping" : 1},检查服务器是否正在运行,即使服务器处于锁定状体此命令也会立即返回
  • renameCollection: {"renameCollection" : a, "to" : b}, 将collection的名字从a改为b
  • repairDatabase:{"repairDatabase" : 1}, 修复并压缩当前数据库
  • serverStatus:{"serverStatus" : 1}, 获取此服务器的管理统计信息

延伸阅读

评论