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方法来执行命令,实际上这些命令都可以通过执行查询的方式来完成。

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

ag游戏大厅注册|平台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还是slavelistCommands: {"listCommands" : 1}, 列出此服务器上所有可用命令listDatabases: {"listDatabases" : 1},列出服务器上所有数据库ping: {"ping" : 1},检查服务器是否正在运行,即使服务器处于锁定状体此命令也会立即返回renameCollection: {"renameCollection" : a, "to" : b}, 将collection的名字从a改为brepairDatabase:{"repairDatabase" : 1}, 修复并压缩当前数据库serverStatus:{"serverStatus" : 1}, 获取此服务器的管理统计信息



    延伸阅读