On this page
使用数据库命令
在本页面
MongoDB 命令界面提供对所有non CRUD数据库操作的访问。获取服务器统计信息,初始化副本集以及运行 map-reduce 作业均通过命令完成。
有关按功能排序的所有命令的列表,请参见Database Commands。
数据库命令表
您可以通过构建标准的BSON文档来指定命令,该文档的第一个键是命令的名称。例如,使用以下BSON文档指定isMaster命令:
{ isMaster: 1 }
Issue Commands
mongo shell 提供了一个用于运行名为db.runCommand()的命令的辅助方法。 mongo中的以下操作运行上述命令:
db.runCommand( { isMaster: 1 } )
许多drivers提供了db.runCommand()方法的等效项。在内部,使用db.runCommand()运行命令等效于针对$cmd集合的特殊查询。
许多常见的命令在mongo shell 和驱动程序中都有自己的 shell 帮助程序或包装程序,例如mongo JavaScript shell 中的db.isMaster()方法。
您可以使用maxTimeMS
选项来指定命令执行的时间限制,有关操作终止的更多信息,请参见终止命令。
Management 员数据库命令
您必须在admin database上运行一些命令。通常,这些操作类似于以下内容:
use admin
db.runCommand( {buildInfo: 1} )
但是,还有一个命令帮助程序可以在admin
数据库的上下文中自动运行该命令:
db.adminCommand( {buildInfo: 1} )
Command Responses
对于所有命令,MongoDB 返回包含以下字段的响应文档:
Field | Description |
---|---|
特定于命令的结果字段 | |
ok |
一个数字,指示命令是成功(1 )还是失败(0 )。 |
operationTime |
执行的操作的逻辑时间,在 MongoDB 中用 oplog 条目中的时间戳表示。 仅适用于副本集和分片群集 |
如果该命令未生成操作日志条目,例如读操作,则该操作不会提前逻辑时钟。在这种情况下,operationTime
返回:
对于关注"local",是操作日志中最新条目的时间戳。
对于已读问题"majority"和"linearizable",是操作日志中最新majority-acknowledged项的时间戳。
对于与因果一致的会话关联的操作,MongoDB 驱动程序会利用这段时间自动设置读取操作和因果一致的会话。
3.6 版中的新功能。
| $clusterTime
|返回已签名群集时间的文档。群集时间是用于对操作进行排序的逻辑时间。 仅适用于副本集和分片群集。仅限内部使用.
该文档包含以下字段:clusterTime
:成员的已知最高群集时间的时间戳。signature
:包含集群时间的哈希值和用于签署集群时间的键的 ID 的文档。
3.6 版中的新功能。