PHP Conference Kansai 2025

MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQueryEjecuta una consulta de base de datos

Descripción

final public MongoDB\Driver\Manager::executeQuery(string $namespace, MongoDB\Driver\Query $query, ?array $options = null): MongoDB\Driver\Cursor

Selecciona un servidor en función de la opción "readPreference" y ejecuta la consulta en ese servidor.

Los valores por omisión de la opción "readPreference" y de la opción "readConcern" de la consulta serán deducidos a partir de una transacción activa (indicada por la opción "session"), seguida de la URI de conexión.

Parámetros

namespace (string)

Un espacio de nombres completamente cualificado (p. ej. "nombreBaseDatos.nombreColección").

query (MongoDB\Driver\Query)

La consulta a ejecutar.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

Una preferencia de lectura a usar para seleccionar un servidor para la operación.

session MongoDB\Driver\Session

Una sesión a asociar con la operación.

Valores devueltos

Devuelve un MongoDB\Driver\Cursor en caso de éxito.

Errores/Excepciones

Historial de cambios

Versión Descripción
PECL mongodb 2.0.0 El parámetro options ya no acepta una instancia de MongoDB\Driver\ReadPreference.
PECL mongodb 1.21.0 Pasar un objeto MongoDB\Driver\ReadPreference como options está obsoleto y será eliminado en la 2.0.
PECL mongodb 1.4.0 El tercer parámetro es ahora un array options. Por razones de compatibilidad ascendente, este parámetro siempre aceptará un objeto MongoDB\Driver\ReadPreference.

Ejemplos

Ejemplo #1 Ejemplo de MongoDB\Driver\Manager::executeQuery()

<?php

$manager
= new MongoDB\Driver\Manager("mongodb://localhost:27017");

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->insert(['x' => 1]);
$bulk->insert(['x' => 2]);
$bulk->insert(['x' => 3]);
$manager->executeBulkWrite('db.collection', $bulk);

$filter = ['x' => ['$gt' => 1]];
$options = [
'projection' => ['_id' => 0],
'sort' => ['x' => -1],
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach (
$cursor as $document) {
var_dump($document);
}

?>

El resultado del ejemplo sería:

object(stdClass)#6 (1) {
  ["x"]=>
  int(3)
}
object(stdClass)#7 (1) {
  ["x"]=>
  int(2)
}

Ejemplo #2 Limitar el tiempo de ejecución de una consulta

La opción "maxTimeMS" de la clase MongoDB\Driver\Query puede ser utilizada para limitar el tiempo de ejecución de una consulta. Tenga en cuenta que este límite de tiempo es aplicado en el lado del servidor y no tiene en cuenta la latencia de la red. Ver » Terminar las operaciones en curso en el manual de MongoDB para más información.

<?php

$manager
= new MongoDB\Driver\Manager('mongodb://localhost:27017');

$filter = ['x' => ['$gt' => 1]];
$options = [
'maxTimeMS' => 1000,
];

$query = new MongoDB\Driver\Query($filter, $options);
$cursor = $manager->executeQuery('db.collection', $query);

foreach (
$cursor as $document) {
var_dump($document);
}

?>

Si la consulta no logra terminar después de un segundo de ejecución en el servidor, una MongoDB\Driver\Exception\ExecutionTimeoutException será lanzada.

Ver también

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top