日期:2014-05-16 浏览次数:20358 次
?
介绍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 (目前为止,对于有些命令还没有帮助信息。。) |