©
This document uses PHP Chinese website manual Release
(mongodb >=1.0.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.
$document
)Example #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 ();
$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;
}
?>
以上例程会输出:
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) }