A classe MongoDB\Driver\ServerApi

(mongodb >=1.10.0)

Introdução

Resumo da classe

final class MongoDB\Driver\ServerApi implements MongoDB\BSON\Serializable, Serializable {
/* Constantes */
/* Métodos */
final public bsonSerialize(): stdClass
final public __construct(string $version, ?bool $strict = null, ?bool $deprecationErrors = null)
final public serialize(): string
final public unserialize(string $data): void
}

Constantes pré-definidas

MongoDB\Driver\ServerApi::V1

API do Servidor versão 1.

Exemplos

Example #1 Declara uma versão da API em um gerenciador

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
    $cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

/* O comando buildInfo retorna um único documento de resultado, portanto é necessário acessar
 * o primeiro resultado no cursor. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

O exemplo acima produzirá:

4.9.0-alpha7-49-gb968ca0

Example #2 Declara uma versão estrita da API em um gerenciador

O exemplo a seguir define o sinalizador strict, que informa ao servidor para rejeitar qualquer comando que não faça parte da versão declarada da API. Isso resulta em um erro ao executar o comando buildInfo.

<?php

use MongoDB\Driver\Manager;
use MongoDB\Driver\ServerApi;

$v1 = new ServerApi(ServerApi::v1, true);
$manager = new Manager('mongodb://localhost:27017', [], ['serverApi' => $v1]);

$command = new MongoDB\Driver\Command(['buildInfo' => 1]);

try {
    $cursor = $manager->executeCommand('admin', $command);
} catch(MongoDB\Driver\Exception $e) {
    echo $e->getMessage(), "\n";
    exit;
}

/* O comando buildInfo retorna um único documento de resultado, portanto é necessário acessar
 * o primeiro resultado no cursor. */
$buildInfo = $cursor->toArray()[0];

echo $buildInfo->version, "\n";

?>

O exemplo acima produzirá:

Provided apiStrict:true, but the command buildInfo is not in API Version 1

Table of Contents