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

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.