(PECL mongo >= 1.5.0)
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.
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