Docs 菜单
Docs 主页
/
MongoDB Manual

使用数据库命令。

在此页面上

  • 数据库命令表格
  • 发出命令
  • admin 数据库命令
  • 命令响应

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 选项指定命令的执行时限,有关操作终止的更多信息,请参阅“终止命令”。

您必须在管理员数据库上运行部分命令。通常,这些操作类似于以下:

use admin
db.runCommand( {buildInfo: 1} )

但是还有命令助手可以在 admin 数据库的上下文中自动运行命令:

db.adminCommand( {buildInfo: 1} )

对于所有命令,MongoDB 返回包含以下字段的响应文档:

字段
说明
<command result>
特定于运行的 command 结果字段。
ok
表明命令成功 (1) 还是失败 (0) 的数字。
operationTime

操作的逻辑时间。MongoDB 使用逻辑时间对排序操作。仅适用于副本集和分片集群

如果命令不生成 oplog 条目,例如读操作,则该操作不会推进逻辑时钟。在这种情况下,operationTime 会返回:

对于与因果一致会话相关的操作,MongoDB 驱动程序使用逻辑时间自动设置读取操作和 afterClusterTime 周期。

$clusterTime

返回已签名集群时间的文档。集群时间是用于操作排序的逻辑时间。仅适用于副本集和分片集群。仅供内部使用。

该文档包含以下字段:

  • clusterTime:成员的已知最高集群时间的时间戳。

  • signature:一个文档,包含集群时间的哈希值和用于对集群时间进行签名的密钥 ID。

来年

MongoDB 是什么?