La classe MongoDB\Driver\Command

(mongodb >=1.0.0)

Introduction

La classe MongoDB\Driver\Command est un objet de valeur qui représente une commande de base de données.

Pour fournir des Command Helpers, l'objet MongoDB\Driver\Command doit être composé.

Synopsis de la classe

final class MongoDB\Driver\Command {
/* Méthodes */
final public __construct(array|object $document, ?array $commandOptions = null)
}

Exemples

Exemple #1 Composé MongoDB\Driver\Command pour fournir un assistant pour créer des collections

<?php
class CreateCollection {
protected
$cmd = array();

function
__construct($collectionName) {
$this->cmd["create"] = (string) $collectionName;
}
function
setCappedCollection($maxBytes, $maxDocuments = false) {
$this->cmd["capped"] = true;
$this->cmd["size"] = (int) $maxBytes;

if (
$maxDocuments) {
$this->cmd["max"] = (int) $maxDocuments;
}
}
function
usePowerOf2Sizes($bool) {
if (
$bool) {
$this->cmd["flags"] = 1;
} else {
$this->cmd["flags"] = 0;
}
}
function
setFlags($flags) {
$this->cmd["flags"] = (int) $flags;
}
function
getCommand() {
return new
MongoDB\Driver\Command($this->cmd);
}
function
getCollectionName() {
return
$this->cmd["create"];
}
}


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

$createCollection = new CreateCollection("cappedCollection");
$createCollection->setCappedCollection(64 * 1024);

try {
$command = $createCollection->getCommand();
$cursor = $manager->executeCommand("databaseName", $command);
$response = $cursor->toArray()[0];
var_dump($response);

$collstats = ["collstats" => $createCollection->getCollectionName()];
$cursor = $manager->executeCommand("databaseName", new MongoDB\Driver\Command($collstats));
$response = $cursor->toArray()[0];
var_dump($response);
} catch(
MongoDB\Driver\Exception $e) {
echo
$e->getMessage(), "\n";
exit;
}

?>

L'exemple ci-dessus va afficher :

object(MongoDB\Driver\Command)#3 (1) {
  ["command"]=>
  array(3) {
    ["create"]=>
    string(16) "cappedCollection"
    ["capped"]=>
    bool(true)
    ["size"]=>
    int(65536)
  }
}
array(1) {
  ["ok"]=>
  float(1)
}
array(16) {
  ["ns"]=>
  string(29) "databaseName.cappedCollection"
  ["count"]=>
  int(0)
  ["size"]=>
  int(0)
  ["numExtents"]=>
  int(1)
  ["storageSize"]=>
  int(65536)
  ["nindexes"]=>
  int(1)
  ["lastExtentSize"]=>
  float(65536)
  ["paddingFactor"]=>
  float(1)
  ["paddingFactorNote"]=>
  string(101) "paddingFactor is unused and unmaintained in 2.8. It remains hard coded to 1.0 for compatibility only."
  ["userFlags"]=>
  int(0)
  ["capped"]=>
  bool(true)
  ["max"]=>
  int(9223372036854775807)
  ["maxSize"]=>
  int(65536)
  ["totalIndexSize"]=>
  int(8176)
  ["indexSizes"]=>
  object(stdClass)#4 (1) {
    ["_id_"]=>
    int(8176)
  }
  ["ok"]=>
  float(1)
}

Sommaire