读书人

MongoDB的下令

发布时间: 2012-09-13 09:51:53 作者: rapoo

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

(目前为止,对于有些命令还没有帮助信息。。)


读书人网 >其他数据库

热点推荐