使用数据库命令

在本页面

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 返回包含以下字段的响应文档:

FieldDescription
特定于命令的结果字段
ok一个数字,指示命令是成功(1)还是失败(0)。
operationTime执行的操作的逻辑时间,在 MongoDB 中用 oplog 条目中的时间戳表示。 仅适用于副本集和分片群集


如果该命令未生成操作日志条目,例如读操作,则该操作不会提前逻辑时钟。在这种情况下,operationTime返回:
对于关注"local",是操作日志中最新条目的时间戳。
对于已读问题"majority""linearizable",是操作日志中最新majority-acknowledged项的时间戳。
对于与因果一致的会话关联的操作,MongoDB 驱动程序会利用这段时间自动设置读取操作和因果一致的会话
3.6 版中的新功能。
| $clusterTime |返回已签名群集时间的文档。群集时间是用于对操作进行排序的逻辑时间。 仅适用于副本集和分片群集。仅限内部使用.
该文档包含以下字段:
clusterTime:成员的已知最高群集时间的时间戳。
signature:包含集群时间的哈希值和用于签署集群时间的键的 ID 的文档。
3.6 版中的新功能。