使用数据库命令
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
数据库命令
您必须在 admin 数据库 上运行一些命令。通常,这些操作类似于以下内容
use admin db.runCommand( {buildInfo: 1} )
但是,还有一个命令辅助程序可以自动在 admin
数据库上下文中运行命令
db.adminCommand( {buildInfo: 1} )
命令响应
对于所有命令,MongoDB 都会返回一个包含以下字段的响应文档
字段 | 描述 |
---|---|
<command result> | 运行 command 特定的结果字段。 |
ok | 一个数字,表示命令是否成功( 1 )或失败(0 )。 |
operationTime | 操作的逻辑时间。MongoDB 使用逻辑时间来排序操作。仅适用于副本集和分片集群。 如果命令不生成 oplog 条目,例如,读取操作,则该操作不会推进逻辑时钟。在这种情况下,
对于与 因果一致性会话 相关的操作,MongoDB 驱动程序使用逻辑时间自动设置 读操作和 |
$clusterTime | 一个返回签名集群时间的文档。集群时间是一种逻辑时间,用于操作排序。 仅适用于副本集和分片集群。仅内部使用。 该文档包含以下字段
|