db.runCommand()
定义
db.runCommand(command, [options])
提供运行指定 数据库命令的辅助程序。这是发出数据库命令的首选方法,因为它在 Shell 和驱动程序之间提供了一致的接口。
Parameter类型说明command
文档或字符串指定该命令的文档或字符串。如果指定为字符串,db.runCommand()
会将该字符串转换为文档。options
文档从 mongosh 2.0 开始,系指指定mongosh
如何运行命令的选项。options.readPreference
读取运行命令的读取偏好。若未指定,则默认为
primary
。db.runCommand()
忽略任何其他读取偏好全局配置集,包括使用setReadPref()
或在连接字符串中指定readPreference
。在 mongosh 1.x 中,
db.runCommand()
不接受options
参数。要设置读取偏好,请使用Mongo.setReadPref()
或在连接字符串中指定readPreference
。要指定以毫秒为单位的时间限制,请参阅终止正在运行的操作。
兼容性
此方法可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关 Atlas 对所有命令的支持的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
行为
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()
或在连接字符串中指定readPreference
,db.runCommand()
使用指定的读取偏好。
示例
以下示例演示如何使用db.runCommand()
运行数据库命令。
未指定读取偏好的 hello 命令
此示例演示如何使用 db.runCommand()
来运行 hello
命令。
db.runCommand( { hello: 1 } )
有关输出的详细信息,请参阅 hello 输出。
有关读取偏好行为的详细信息,请参阅读取偏好。
带以下 readPreference 的 hello 命令:secondaryPreferred
此示例说明如何使用db.runCommand()
hello
运行具有secondaryPreferred
读取偏好的命令。
db.runCommand( { hello: 1 }, { readPreference: "secondaryPreferred" } )
有关输出的详细信息,请参阅 hello 输出。
有关读取偏好行为的详细信息,请参阅读取偏好。
响应
该方法返回包含以下字段的响应文档:
字段 | 说明 |
---|---|
<command result> | 特定于运行的 command 结果字段。 |
ok | 表明命令成功 ( 1 ) 还是失败 (0 ) 的数字。 |
operationTime | 操作的逻辑时间。MongoDB 使用逻辑时间对排序操作。仅适用于副本集和分片集群。 如果命令不生成 oplog 条目,例如读操作,则该操作不会推进逻辑时钟。在这种情况下,
对于与因果一致会话相关的操作,MongoDB 驱动程序使用逻辑时间自动设置读取操作和 |
$clusterTime | 返回已签名集群时间的文档。集群时间是用于操作排序的逻辑时间。仅适用于副本集和分片集群。仅供内部使用。 该文档包含以下字段:
|