La clase MongoDB\Driver\ServerApi

(mongodb >=1.10.0)

Introducción

Sinopsis de la Clase

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

Constantes predefinidas

MongoDB\Driver\ServerApi::V1

Versión 1 de la API del servidor.

Ejemplos

Ejemplo #1 Declarar una versión de API en un gestor

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

/* La comando buildInfo devuelve un documento único, por lo que es necesario acceder
* al primer resultado del cursor. */
$buildInfo = $cursor->toArray()[0];

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

?>

El resultado del ejemplo sería:

4.9.0-alpha7-49-gb968ca0

Ejemplo #2 Declarar una versión de API estricta en un gestor

El siguiente ejemplo establece el flag strict, que indica al servidor rechazar cualquier comando que no forme parte de la versión de API declarada. Esto provoca un error al ejecutar el 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;
}

/* El comando buildInfo devuelve un documento único, por lo que es necesario acceder
* al primer resultado del cursor. */
$buildInfo = $cursor->toArray()[0];

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

?>

El resultado del ejemplo sería:

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

Tabla de contenidos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top