Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

db.runCommand()

在此页面上

  • 定义
  • 兼容性
  • 行为
  • 示例
  • 响应
db.runCommand(command, [options])

提供运行指定 数据库命令的辅助程序。这是发出数据库命令的首选方法,因为它在 Shell 和驱动程序之间提供了一致的接口。

Parameter
类型
说明

command

文档或字符串

指定该命令的文档或字符串。如果指定为字符串,db.runCommand() 会将该字符串转换为文档。

options

文档

从 mongosh 2.0 开始,系指指定 mongosh 如何运行命令的选项。

options.readPreference

读取运行命令的读取偏好。若未指定,则默认为 primarydb.runCommand() 忽略任何其他读取偏好全局配置集,包括使用 setReadPref() 或在连接字符串中指定 readPreference

在 mongosh 1.x 中, db.runCommand() 不接受 options 参数。要设置读取偏好,请使用 Mongo.setReadPref() 或在连接字符串中指定 readPreference

要指定以毫秒为单位的时间限制,请参阅终止正在运行的操作。

此方法可用于以下环境中托管的部署:

  • MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务

注意

所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令

db.runCommand() 在当前数据库的上下文中运行命令。有些命令仅适用于 admin 数据库的上下文中,在运行这些命令或使用 db.adminCommand() 之前,必须更改 db 对象。

从 mongosh 2.0 开始,可使用 options 参数为某一命令指定读取偏好。如果不指定读取偏好,则 db.runCommand() 默认针对 primary

警告

在 mongosh 2.0 中,db.runCommand() 忽略任何其他读取偏好全局配置集,包括使用 Mongo.setReadPref() 或在连接字符串中指定 readPreference

在 mongosh 1.x 中,db.runCommand()不接受options参数。通过使用Mongo.setReadPref()或在连接字符串中指定readPreferencedb.runCommand()使用指定的读取偏好。

以下示例演示如何使用db.runCommand()运行数据库命令。

此示例演示如何使用 db.runCommand() 来运行 hello 命令。

db.runCommand( { hello: 1 } )

有关输出的详细信息,请参阅 hello 输出

有关读取偏好行为的详细信息,请参阅读取偏好

此示例说明如何使用db.runCommand() hello运行具有secondaryPreferred 读取偏好的命令。

db.runCommand( { hello: 1 }, { readPreference: "secondaryPreferred" } )

有关输出的详细信息,请参阅 hello 输出

有关读取偏好行为的详细信息,请参阅读取偏好

该方法返回包含以下字段的响应文档:

字段
说明

<command result>

特定于运行的 command 结果字段。

ok

表明命令成功 (1) 还是失败 (0) 的数字。

operationTime

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

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

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

$clusterTime

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

该文档包含以下字段:

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

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

后退

db.rotateCertificates