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
。要指定以毫秒为单位的时间限制,请参阅终止正在运行的操作。
行为
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 | 返回已签名集群时间的文档。集群时间是用于操作排序的逻辑时间。仅适用于副本集和分片集群。仅供内部使用。 该文档包含以下字段:
|