La clase MongoProtocolException

(PECL mongo >= 1.5.0)

Introducción

Al conversar con MongoDB 2.6.0, y posterior, ciertas operaciones (como las escrituras) pueden lanzar una MongoProtocolException cuando la respuesta del servidor no tiene sentido - por ejemplo durante un fallo de red (podríamos leer la respuesta completa) o corrupción de datos.

Esta excepción también es lanzada al intentar conversar con protocolos más recientes de los que soporta el servidor, por ejemplo, usando MongoWriteBatch al conversar con un servidor de MongoDB anterior a la versión 2.6.0.

Sinopsis de la Clase

MongoProtocolException extends MongoException {
/* Propiedades heredadas */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Ejemplos

Ejemplo #1 Capturar una MongoProtocolException

Ejecutar el siguiente ejemplo con MongoDB anterior a 2.6.0 lanzará una MongoProtocolException

<?php
$mc 
= new MongoClient("localhost");
$c $mc->selectCollection("test""test");

try {
    
$batch = new MongoInsertBatch($c);
} catch(
MongoProtocolException $e) {
    echo 
$e->getMessage();
}
?>

El resultado de los ejemplos sería algo similar a:

Current primary does not have a Write API