MongoDB\Driver\Command::__construct

(mongodb >=1.0.0)

MongoDB\Driver\Command::__construct — CrĂ©e une nouvelle commande

Description

final public function MongoDB\Driver\Command::__construct(array|object $document, ?array $commandOptions = null)

Construit un nouveau MongoDB\Driver\Command, qui est un objet valeur immuable qui reprĂ©sente une commande de base de donnĂ©es. La commande peut alors ĂȘtre exĂ©cutĂ©e avec MongoDB\Driver\Manager::executeCommand().

Le document de commande complet, qui inclut le nom de la commande et ses options, doit ĂȘtre exprimĂ© dans le paramĂštre document. Le paramĂštre commandOptions est utilisĂ© uniquement pour spĂ©cifier les options liĂ©es Ă  l'exĂ©cution de la commande et le rĂ©sultat MongoDB\Driver\Cursor.

Liste de paramĂštres

document
Le document de commande complet, qui sera envoyé au serveur.
commandOptions

Note: Ne pas utiliser ce paramĂštre pour spĂ©cifier les options dĂ©crites dans la rĂ©fĂ©rence de la commande dans le manuel MongoDB. Ce paramĂštre ne doit ĂȘtre utilisĂ© que pour les options explicitement Ă©numĂ©rĂ©es ci-dessous.

commandOptions
Option Type Description
maxAwaitTimeMS int Entier positif indiquant la limite de temps en millisecondes pour que le serveur bloque une opĂ©ration getMore si aucune donnĂ©e n'est disponible. Cette option ne doit ĂȘtre utilisĂ©e qu'en conjonction avec les commandes qui retournent un curseur Ă  queue (par exemple » Change Streams).

Erreurs / Exceptions

  • Lance une exception MongoDB\Driver\InvalidArgumentException lors d'une erreur survenue pendant l'analyse d'un argument.

Historique

Version Description
PECL mongodb 1.4.0 Ajout d'un deuxiĂšme argument commandOptions, qui prend en charge l'option "maxAwaitTimeMS".

Exemples

Exemple #1 Exemple avec MongoDB\Driver\Command::__construct()

<?php

$manager
= new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(array("buildinfo" => 1));

try {
$cursor = $manager->executeCommand("admin", $command);
$response = $cursor->toArray()[0];
} catch(
MongoDB\Driver\Exception $e) {
echo
$e->getMessage(), "\n";
exit;
}
var_dump($response);

?>

Résultat de l'exemple ci-dessus est similaire à :

array(13) {
  ["version"]=>
  string(14) "2.8.0-rc2-pre-"
  ["gitVersion"]=>
  string(62) "b743d7158f7642f4da6b7eac8320374b3b88dc2e modules: subscription"
  ["OpenSSLVersion"]=>
  string(25) "OpenSSL 1.0.1f 6 Jan 2014"
  ["sysInfo"]=>
  string(104) "Linux infant 3.16.0-24-generic #32-Ubuntu SMP Tue Oct 28 13:07:32 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49"
  ["loaderFlags"]=>
  string(91) "-fPIC -pthread -Wl,-z,now -rdynamic -Wl,-Bsymbolic-functions -Wl,-z,relro -Wl,-z,now -Wl,-E"
  ["compilerFlags"]=>
  string(301) "-Wnon-virtual-dtor -Woverloaded-virtual -std=c++11 -fPIC -fno-strict-aliasing -ggdb -pthread -Wall -Wsign-compare -Wno-unknown-pragmas -Winvalid-pch -pipe -Werror -O3 -Wno-unused-local-typedefs -Wno-unused-function -Wno-deprecated-declarations -Wno-unused-but-set-variable -fno-builtin-memcmp -std=c99"
  ["allocator"]=>
  string(8) "tcmalloc"
  ["versionArray"]=>
  array(4) {
    [0]=>
    int(2)
    [1]=>
    int(8)
    [2]=>
    int(0)
    [3]=>
    int(-8)
  }
  ["javascriptEngine"]=>
  string(2) "V8"
  ["bits"]=>
  int(64)
  ["debug"]=>
  bool(false)
  ["maxBsonObjectSize"]=>
  int(16777216)
  ["ok"]=>
  float(1)
}

Exemple #2 Exemple avec MongoDB\Driver\Command::__construct()

Les commandes peuvent Ă©galement accepter des options, dans le cadre de la structure normale qu'on crĂ©e pour envoyer au serveur. Par exemple, l'option maxTimeMS peut ĂȘtre passĂ©e avec la plupart des commandes pour restreindre la durĂ©e pendant laquelle une commande spĂ©cifique peut s'exĂ©cuter sur le serveur.

<?php

$manager
= new MongoDB\Driver\Manager("mongodb://localhost:27017");
$command = new MongoDB\Driver\Command(
array(
"distinct" => "beer",
"key" => "beer_name",
"maxTimeMS" => 10,
)
);

try {
$cursor = $manager->executeCommand("beerdb", $command);
$response = $cursor->toArray()[0];
} catch(
MongoDB\Driver\Exception\Exception $e) {
echo
$e->getMessage(), "\n";
exit;
}
var_dump($response);

?>

Résultat de l'exemple ci-dessus est similaire à :


operation exceeded time limit

Voir aussi

add a note

User Contributed Notes

There are no user contributed notes for this page.