MongoDB\数据库::command()
定义
MongoDB\Database::command()
执行命令。这通常用于执行库中没有相应辅助方法的命令。
function command( array|object $command, array $options = [] ): MongoDB\Driver\Cursor
参数
返回值
错误/异常
MongoDB\Exception\InvalidArgumentException
与参数或选项解析相关的错误。
MongoDB\Driver\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) { } } } } }