定义
- MongoDB\Database::command()
- 对数据库执行命令。 这通常用于执行库中没有相应辅助方法的命令。 - function command( - array|object $command, - array $options = [] - ): MongoDB\Driver\Cursor 
参数
- $command: array|object
- 数据库命令文档。
- $options: array
- 指定所需选项的数组。 名称类型说明- readPreference - 读取要用于操作的偏好。 默认为数据库的读取偏好。 - 会话 - 与操作相关联的客户端会话。 - 1.3 版本中的新增功能。 - typeMap - 阵列 - 应用游标的类型映射,决定如何将BSON文档转换为PHP值。默认为数据库的类型映射。 
Return Values
错误/异常
MongoDB\Exception\InvalidArgumentException 用于与参数或选项解析相关的错误。
MongoDB\ 驱动程序\Exception\RuntimeException 用于扩展级别的其他错误(例如连接错误)。
例子
大多数数据库命令返回单个结果文档,可以通过将返回的游标转换为大量并访问其第一个元素来获得该结果文档。 以下示例执行网络探测(ping)命令并打印其结果文档:
$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() 。
$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) {         }       }     }   } }