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 calificado (ej. "databaseName.collectionName")

query (MongoDB\Driver\Query)

La consulta a ejecutar.

options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference

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

session MongoDB\Driver\Session

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

Valores devueltos

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

Errores/Excepciones

  • Lanza una excepción MongoDB\Driver\AuthenticationException si se requiere una identificación pero falla
  • Lanza una excepción MongoDB\Driver\ConnectionException si la conexión al servidor falla por una razón distinta a un problema de identificación
  • Lanza una MongoDB\Driver\Exception\RuntimeException en caso de otro error (por ejemplo: operadores de consulta inválidos).

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 ejemplo anterior mostrará :

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