The MongoDB\Driver\Command class

(mongodb >=1.0.0)

Introduction

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.

Class synopsis

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

Examples

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

?>

The above example will output:

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

Table of Contents

Here you can write a comment


Please enter at least 10 characters.
Loading... Please wait.
* Pflichtangabe
There are no comments available yet.

PHP cURL Tutorial: Using cURL to Make HTTP Requests

cURL is a powerful PHP extension that allows you to communicate with different servers using various protocols, including HTTP, HTTPS, FTP, and more. ...

TheMax

Autor : TheMax
Category: PHP-Tutorials

Midjourney Tutorial - Instructions for beginners

There is an informative video about Midjourney, the tool for creating digital images using artificial intelligence, entitled "Midjourney tutorial in German - instructions for beginners" ...

Mike94

Autor : Mike94
Category: KI Tutorials

Basics of views in MySQL

Views in a MySQL database offer the option of creating a virtual table based on the result of an SQL query. This virtual table can be queried like a normal table without changing the underlying data. ...

admin

Autor : admin
Category: mySQL-Tutorials

Publish a tutorial

Share your knowledge with other developers worldwide

Share your knowledge with other developers worldwide

You are a professional in your field and want to share your knowledge, then sign up now and share it with our PHP community

learn more

Publish a tutorial