对于 AI 代理:可在 https://www.mongodb.com/zh-cn/docs/llms.txt 获取文档索引—通过在任何 URL 路径后添加 .md 可获取所有页面的 Markdown 版本。

MongoDB\Database::command()

MongoDB\Database::command()

对数据库执行命令。 这通常用于执行库中没有相应辅助方法的命令。

function command( array|object $command, array $options = []): MongoDB\Driver\Cursor
$command : array|object
数据库命令文档。
$options : array

指定所需选项的数组。

名称
类型
说明

readPreference

读取要用于操作的偏好。 默认为数据库的读取偏好。

会话

与操作相关联的客户端会话。

1.3版本新增。

typeMap

阵列

应用游标的类型映射,决定如何将BSON文档转换为PHP值。默认为数据库的类型映射。

MongoDB\ 驱动程序\Cursor对象。

MongoDB\Exception\InvalidArgumentException 用于与参数或选项解析相关的错误。

MongoDB\ 驱动程序\Exception\RuntimeException 用于扩展级别的其他错误(例如连接错误)。

大多数数据库命令返回单个结果文档,可以通过将返回的游标转换为大量并访问其第一个元素来获得该结果文档。 以下示例执行网络探测(ping)命令并打印其结果文档:

<?php $database = (new MongoDB\Client)->test; $cursor = $database->command(['ping' => 1]); var_dump($cursor->toArray()[0]);

输出类似如下所示:

object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(1) { ["ok"]=> float(1) }}

某些数据库命令会返回包含多个结果的游标。 以下示例执行listCollections ,返回一个游标,其中包含test数据库中每个集合的结果文档。 请注意,此示例是说明性的;应用程序在实践中通常会使用MongoDB\Database::listCollections() 。

<?php $database = (new MongoDB\Client)->test; $cursor = $database->command(['listCollections' => 1]); var_dump($cursor->toArray());

输出类似如下所示:

array(3) { [0]=> object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(2) { ["name"]=> string(11) "restaurants" ["options"]=> object(MongoDB\Model\BSONDocument)#3 (1) { ["storage":"ArrayObject":private]=> array(0) { } } } } [1]=> object(MongoDB\Model\BSONDocument)#13 (1) { ["storage":"ArrayObject":private]=> array(2) { ["name"]=> string(5) "users" ["options"]=> object(MongoDB\Model\BSONDocument)#12 (1) { ["storage":"ArrayObject":private]=> array(0) { } } } } [2]=> object(MongoDB\Model\BSONDocument)#15 (1) { ["storage":"ArrayObject":private]=> array(2) { ["name"]=> string(6) "restos" ["options"]=> object(MongoDB\Model\BSONDocument)#14 (1) { ["storage":"ArrayObject":private]=> array(0) { } } } }}