使用数据库命令。
MongoDB命令接口提供对所有 非CRUD数据库操作的访问权限。 获取服务器统计信息、初始化副本集以及运行聚合管道或map-reduce作业都是通过命令完成的。
有关按函数排序的所有命令列表,请参阅“数据库命令”。
数据库命令表格
要指定一条命令,首先要构建一个标准 BSON 文档,该文档的第一个键就是命令名称。例如,使用以下 BSON 文档指定 hello
命令。
{ hello: 1 }
发出命令
mongosh
为运行名为 db.runCommand()
的命令提供了一个辅助方法。mongosh
中的以下操作将执行前一条命令:
db.runCommand( { hello: 1 } )
许多驱动程序都提供了与 db.runCommand()
方法等效的方法。在内部,使用 db.runCommand()
运行命令等同于对 $cmd 集合进行特殊查询。
许多常用命令在 mongosh
和驱动程序中都有自己的 Shell 助手或包装器,例如 mongosh
中的 db.hello()
方法。
可以使用 maxTimeMS
选项指定命令的执行时限,有关操作终止的更多信息,请参阅“终止命令”。
admin
数据库命令
您必须在管理员数据库上运行部分命令。通常,这些操作类似于以下:
use admin db.runCommand( {buildInfo: 1} )
但是还有命令助手可以在 admin
数据库的上下文中自动运行命令:
db.adminCommand( {buildInfo: 1} )
命令响应
对于所有命令,MongoDB 返回包含以下字段的响应文档:
字段 | 说明 |
---|---|
<command result> | 特定于运行的 command 结果字段。 |
ok | 表明命令成功 ( 1 ) 还是失败 (0 ) 的数字。 |
operationTime | 操作的逻辑时间。MongoDB 使用逻辑时间对排序操作。仅适用于副本集和分片集群。 如果命令不生成 oplog 条目,例如读操作,则该操作不会推进逻辑时钟。在这种情况下,
对于与因果一致会话相关的操作,MongoDB 驱动程序使用逻辑时间自动设置读取操作和 |
$clusterTime | 返回已签名集群时间的文档。集群时间是用于操作排序的逻辑时间。仅适用于副本集和分片集群。仅供内部使用。 该文档包含以下字段:
|