©
本文档使用
php中文网手册 发布
(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)
}