La classe MongoProtocolException

(PECL mongo >= 1.5.0)

Introduction

Lors d'une communication avec MongoDB 2.6.0 et suivants, certaines opérations (comme les écritures) peuvent lancer une exception MongoProtocolException lorsque la réponse du serveur n'a pas de sens - par exemple, lors d'une erreur de réseau (impossible de lire la totalité de la réponse), ou lors d'une corruption de données.

Cette exception est également lancée lors d'une tentative de communication avec des protocoles nouveaux sur des serveurs plus anciens, par exemple, en utilisant MongoWriteBatch avec des serveurs MongoDB dont la version est inférieure à 2.6.0.

Synopsis de la classe

MongoProtocolException extends MongoException {
/* Propriétés héritées */
protected string $message ;
protected int $code ;
protected string $file ;
protected int $line ;
}

Exemples

Exemple #1 Catching MongoProtocolException

Exécution de l'exemple suivant sur un serveur MongoDB dont la version est antérieure à 2.6.0 va lancer une exception MongoProtocolException

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

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

Les exemples ci-dessus vont afficher quelque chose de similaire à :

Current primary does not have a Write API