MongoDB的命令
?
命令介绍MongoDB数据库有一个数据库命令的概念(database command)。数据库命令让让数据库执行特殊操作的一个方法,或者请求目前操作的状态的信息。发送到数据库的一个命令,实际上是对名称为$cmd的collection的一个查询。数据库命令的结果就是使用findOne()返回一个单独的document。
语法如下:
db.$cmd.findOne( { <commandname>: <value> [, options] } );Shell环境提供了一个更为便捷的方法:
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"); // shut down the database如果db的变量的值不是admin。你可以使用_adminCommand来自动切换到适合的数据库。
> db._adminCommand("shutdown");(对于这个命令,也有个便捷的方法,db.shutdownServer)
获取命令的帮助信息在shell中调用 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
(目前为止,对于有些命令还没有帮助信息。。)