MongoDB\Driver\Manager::executeQuery

(mongodb >=1.0.0)

MongoDB\Driver\Manager::executeQuery — ExĂ©cute une requĂȘte de base de donnĂ©es

Description

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

SĂ©lectionne un serveur en fonction de l'option "readPreference" et exĂ©cute la requĂȘte sur ce serveur.

Les valeurs par dĂ©faut de l'option "readPreference" et de l'option "readConcern" de la requĂȘte seront dĂ©duites Ă  partir d'une transaction active (indiquĂ©e par l'option "session"), suivie de l'URI de connexion.

Liste de paramĂštres

namespace (string)
Un espace de noms totalement qualifié (e.g. "databaseName.collectionName")
query (MongoDB\Driver\Query)
La requĂȘte Ă  exĂ©cuter.
options

options
Option Type Description
readPreference MongoDB\Driver\ReadPreference Une préférence de lecture à utiliser pour sélectionner un serveur pour l'opération.
session MongoDB\Driver\Session Une session à associer à l'opération.

Valeurs de retour

Retourne un MongoDB\Driver\Cursor en cas de succĂšs.

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\AuthenticationException si une identification est nĂ©cessaire mais qu'elle Ă©choue
  • Lance une exception MongoDB\Driver\ConnectionException si la connexion au serveur Ă©choue pour une autre raison qu'en raison d'un problĂšme d'identification
  • Lance une MongoDB\Driver\Exception\RuntimeException sur d'autres erreurs (par exemple: opĂ©rateurs de requĂȘte invalides).

Historique

Version Description
PECL mongodb 2.0.0 Le paramĂštre options n'accepte plus une instance de MongoDB\Driver\ReadPreference.
PECL mongodb 1.21.0 Passer un objet MongoDB\Driver\ReadPreference en tant qu'options est obsolÚte et sera supprimé dans la 2.0.
PECL mongodb 1.4.0 Le troisiÚme paramÚtre est maintenant un tableau options. Pour des raisons de compatibilité ascendante, ce paramÚtre acceptera toujours un objet MongoDB\Driver\ReadPreference.

Exemples

Exemple #1 Exemple 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);
}

?>

L'exemple ci-dessus va afficher :

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

Exemple #2 Limiter le temps d'exĂ©cution d'une requĂȘte

L'option "maxTimeMS" de la classe MongoDB\Driver\Query peut ĂȘtre utilisĂ©e pour limiter le temps d'exĂ©cution d'une requĂȘte. Il est Ă  noter que cette limite de temps est appliquĂ©e cĂŽtĂ© serveur et ne prend pas en compte la latence rĂ©seau. Voir » Terminer les opĂ©rations en cours dans le manuel MongoDB pour plus d'informations.

<?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 requĂȘte ne parvient pas Ă  se terminer aprĂšs une seconde d'exĂ©cution sur le serveur, une MongoDB\Driver\Exception\ExecutionTimeoutException sera lancĂ©e.

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.