Definición
MongoDB\Database::command()Ejecuta un Comando en la base de datos. Generalmente, se usa para ejecutar comandos que no tienen un método auxiliar correspondiente en la biblioteca.
function command( array|object $command, array $options = [] ): MongoDB\Driver\Cursor
Parámetros
$command: arreglo|objeto- El documento de comando de base de datos.
$options: arregloUna matriz que especifica las opciones deseadas.
NombreTipoDescripciónreadPreference
Preferencia de lectura para la operación. El valor predeterminado es la preferencia de lectura de la base de datos.
sesión
Sesión de cliente para asociar a la operación.
Nueva en la versión 1.3.
typeMap
arreglo
El mapa de tipos que se aplica a los cursores y que determina cómo se convierten los documentos BSON a valores PHP. El valor predeterminado es el mapa de tipos de la base de datos.
Return Values
Un objeto MongoDB\Driver\Cursor.
Errores/Excepciones
MongoDB\Exception\InvalidArgumentException por errores relacionados con el análisis de parámetros u opciones.
MongoDB\Driver\Exception\RuntimeException para otros errores en el nivel de extensión (por ejemplo, errores de conexión).
Ejemplo
La mayoría de los comandos de base de datos devuelven un solo documento de resultado, el cual puede obtenerse convirtiendo el cursor devuelto a un arreglo y accediendo a su primer elemento. El siguiente ejemplo ejecuta un comando ping e imprime su documento de resultados:
$database = (new MongoDB\Client)->test; $cursor = $database->command(['ping' => 1]); var_dump($cursor->toArray()[0]);
El resultado sería similar a:
object(MongoDB\Model\BSONDocument)#11 (1) { ["storage":"ArrayObject":private]=> array(1) { ["ok"]=> float(1) } }
Algunos comandos de bases de datos devuelven un cursor con múltiples resultados. El siguiente ejemplo ejecuta el comando listCollections, que devuelve un cursor con un documento de resultado por cada colección en la base de datos test. Tenga en cuenta que este ejemplo es ilustrativo; generalmente, las aplicaciones usarían MongoDB\Database::listCollections() en la práctica.
$database = (new MongoDB\Client)->test; $cursor = $database->command(['listCollections' => 1]); var_dump($cursor->toArray());
El resultado sería similar a:
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) { } } } } }