介绍
Mongo数据库有数据库指令(database command)概念。使用这些命令可以让数据库执行某中操作或是返回有关数据库当前状态的某些信息。
一条指令将被作为针对 $cmd 集合的一种特殊的查询语句发送到数据库。数据库执行后,将返回一个单文档对象作为命令的返回结果,可以用 findOne() 获得。
基本的命令格式为:
db.$cmd.findOne( { <commandname>: <value> [, options] } );
在命令行环境下,可以执行:
db.runCommand( { <commandname>: <value> [, options] } );
例如,检查当前数据库profile level的设置,可以执行:
> db.runCommand({profile:-1});
{
"was" : 0.0 ,
"ok" : 1.0
}
多数数据库驱动提供了对数据库指令的封装方法,以方便使用。例如mongo shell 提供
> db.getProfilingLevel()
0.0
该方法的实现如下:
> print( db.getProfilingLevel )
function () {
var res = this._dbCommand({profile:-1});
return res ? res.was : null;
}
> print( db._dbCommand )
function (cmdObj) {
return this.$cmd.findOne(cmdObj);
}
多数指令都有类似的简便用法 - 参见各数据库驱动的相关文档。
特权指令
某些特殊的操作只有管理员才能执行。这些特殊的操作将在{{admin}}数据库中执行。
> use admin;
> db.runCommand("shutdown");
如果当前数据库不是'admin', 你可以直接使用_adminCommand方法去操作:
> db._adminCommand("shutdown");
(对于这个操作,还有简便用法db.shutdownServer。)
获得指令帮助信息
使用commandHelp命令去获得某个指令的相关信息:
> db.commandHelp("datasize")
help for: datasize example: { datasize:"blog.posts", keyPattern:{x:1}, min:{x:10}, max:{x:55} }
NOTE: This command may take awhile to run
(某些指令还没有完整的帮助信息.)