PHP 5.4.36 Released

La classe MongoException

(PECL mongo >= 1.0.0)

Introduction

Exception Mongo par défaut.

Cette exception couvre un grand nombre de conditions d'erreurs pouvant être déplacées vers une exception plus spécifique, mais étendant toujours la classe MongoException.

  • L'objet MongoSomething n'a pas été correctement initialisé par son constructeur

    Code: 0

    Votre objet Mongo semble déconnecté du serveur de base de données.

  • Des clés de taille zéro ne sont pas autorisées, avez-vous utiliser le $ avec des double quotes?

    Code: 1

    Vous avez tenté de sauvegardé une clé "". Vous ne devriez pas agir comme cela. "" peut servir pour des sous-objets et est utilisé en interne par MongoDB. Cependant, si vous le voulez vraiment, vous pouvez placer mongo.allow_empty_keys à true dans php.ini pour surcharger cette vérification. Si tel est le cas, il est recommandé d'utiliser la vérification stricte des erreurs.

  • '.' non autorisé dans la clé: <key>

    Code: 2

    Vous tentez d'écrire une clé avec un '.' dedans, ce qui est interdit.

  • insertion trop grande: <size>, max: <max>

    Code: 3

    Vous tentez d'envoyer trop de données à la base en une fois: la base n'accepte des insertions que jusqu'à une certaine taille (actuellement 16 MB).

  • Pas d'éléments dans le doc

    Code: 4

    Vous tentez de sauver un document sans champ.

  • La taille du doucment BSON est de <size> octets, max <max>MB

    Code: 5

    Vous tentez de sauver un document plus gros que la taille autorisée par MongoDB.

  • Pas de documents fournis

    Code: 6

    Vous tentez d'insérer par lots un tableau vide de documents.

  • MongoCollection::group prend un tableau, objet ou une clé MongoCode

    Code: 7

    Mauvais type envoyé à MongoCollection::group().

  • les noms de champs doivent être des chaines

    Code: 8

    Vous devriez formatter les sélecteurs de champs comme array("field1" => 1, "field2" => 1, ..., "fieldN" => 1).

  • invalid regex

    Code: 9

    L'expression régulière passée à MongoRegex n'a pas la forme attendue.

  • MongoDBRef::get: le champ $ref doit être une chaine

    Code: 10

  • MongoDBRef::get: le champ $db doit être une chaine

    Code: 11

  • chaines non-utf8: <str>

    Code: 12

    Cette erreur survient si vous tentez d'envoyer une chaîne de caractères non UTF-8 dans la base de données. Toutes les chaînes envoyées à la base de données doivent être encodées UTF-8. Reportez-vous aux options de votre php.ini pour l'option de transition permettant de rendre silencieuse cette exception.

  • mutex error: <err>

    Code: 13

    Le pilote utilise des mutexes pour synchroniser les requêtes et les réponses dans des environnements multithreadés. Ceci est une erreur sérieuse et peut ne pas avoir de trace de pile. C'est peu commun et devrait être rapporté aux mainteneurs avec toute information sur le système pour assurer le déboguage.

  • nom d'index trop long: <len>, max <max> caractères

    Code: 14

    Les index dont les noms dépassent 128 caractères ne peuvent être créés. Si vous avez cette erreur, vous devriez utiliser l'option "name" de MongoCollection::ensureIndex() pour créer un nom d'index plus court.

Synopsis de la classe

MongoException extends Exception {
}
add a note add a note

User Contributed Notes 1 note

up
0
janis dot peisenieks at gmail dot com
4 months ago
In case of "zero-length keys are not allowed, did you use $ with double quotes?" error, checking the saved data for objects with private/protected variables can solve the problem.

It seems, that the PECL extension currently does not support private/protected variables, thus making their keys empty strings. A simple, yet not allways desirable, solution is to make these variables public.

Example:
<?php
class Example
{
    private
$value;
    protected
$output;
}
?>php
will throw an exception.

<?php
class Example
{
    public
$value;
    public
$output;
}
?>php
Will not throw an exception
To Top