文档菜单
文档首页
/
MongoDB 手册

使用数据库命令

在本页

  • 数据库命令表单
  • 发布命令
  • admin 数据库命令
  • 命令响应

MongoDB 命令接口提供对所有非 CRUD 数据库操作的访问。获取服务器统计信息、初始化副本集和运行聚合管道或 map-reduce 作业都可以通过命令完成。

请参阅数据库命令以获取按功能排序的所有命令列表。

首先,您通过构造一个标准的BSON文档来指定命令,该文档的第一个键是命令的名称。例如,使用以下BSON文档指定hello命令:

{ hello: 1 }

mongosh提供了一个名为db.runCommand()的辅助方法来运行命令。以下在mongosh中的操作运行了之前的命令:

db.runCommand( { hello: 1 } )

许多驱动器db.runCommand()方法提供了等效功能。内部上,使用db.runCommand()运行命令相当于对$cmd集合的特殊查询。

许多常见命令在 mongosh 和驱动程序中都有自己的外壳辅助程序或包装器,例如 db.hello() 方法在 mongosh.

您可以使用 maxTimeMS 选项指定命令执行的时限,有关操作终止的更多信息,请参阅 终止命令

您必须在 admin 数据库 上运行一些命令。通常,这些操作类似于以下内容

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

但是,还有一个命令辅助程序可以自动在 admin 数据库上下文中运行命令

db.adminCommand( {buildInfo: 1} )

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

字段
描述
<command result>
运行 command 特定的结果字段。
ok
一个数字,表示命令是否成功(1)或失败(0)。
operationTime

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

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

  • 对于读关注度 "local""snapshot""linearizable",是操作日志中最新的条目的时间戳。

  • 对于读关注度 "majority",是操作日志中最新的 majority-acknowledged 条目的时间戳。

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

$clusterTime

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

该文档包含以下字段

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

  • signature:包含集群时间哈希和用于签名集群时间的密钥 ID 的文档。

下一页

什么是 MongoDB?