The MongoDB\Driver\Command class


(mongodb >=0.2.0)

The MongoDB\Driver\Command class is a value object that represents a database command.

To provide "Command Helpers" the MongoDB\Driver\Command object should be composed.

Обзор классов

final MongoDB\Driver\Command {
/* Методы */
final public __construct ( array|object $document )
}

Примеры

Пример #1 Composing MongoDB\Driver\Command to provide a helper to create collections

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

    function 
__construct($collectionName) {
        
$this->cmd["create"] = (string)$collectionName;
    }
    function 
setAutoIndexId($bool) {
        
$this->cmd["autoIndexId"] = (bool)$bool;
    }
    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();
    
$result $manager->executeCommand("databaseName"$command);
    
$response $result->getResponseDocument();
    
var_dump($response);

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

?>

Результат выполнения данного примера:

 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) } 

Содержание