Clase MongoException

(PECL mongo >= 1.0.0)

Introducción

Excepción Mongo predeterminada.

Abarca un gran número de condiciones de error que, eventualmente, podrán moverse a excepciones más específicas, pero que en cualquier caso siempre extenderán MongoException.

  • The MongoSomething object has not been correctly initialized by its constructor

    Código: 0

    Probablemente tu objeto Mongo no esté conectado al servidor de bases de datos.

  • zero-length keys are not allowed, did you use $ with double quotes?

    Código: 1

    Se ha intentado guardar el valor "" como clave. En general, no se debe hacer esto. "" podría provocar errores al acceder a subobjetos, además de que es usado internamente por MongoDB. Sin embargo, si realmente quiere, puede asignar en su fichero php.ini el valor true a mongo.allow_empty_keys para sobrescribir esta comprobación. Si se sobrescribe, se recomienda encarecidamente establecer la comprobación estricta de errores para evitar errores de interpolación de textos.

  • '.' not allowed in key: <key>

    Código: 2

    Se ha intentado escribir una clave que contiene un ".", lo cual está prohibido.

  • insert too large: <size>, max: <max>

    Código: 3

    Se ha intentado enviar demasiada información de una vez a la base de datos: la base de datos sólo acepta inserciones de hasta un determinado tamaño (actualmente 16 MB).

  • no elements in doc

    Código: 4

    Se ha intentado guardar un documento que no contiene ningún campo.

  • size of BSON doc is <size> bytes, max <max>MB

    Código: 5

    Se ha intentado guardar un documento con un tamaño superior al que MongoDB puede guardar.

  • no documents given

    Código: 6

    Se ha intentado insertar por lotes un array vacío de documentos.

  • MongoCollection::group takes an array, object, or MongoCode key

    Código: 7

    Se han enviado a MongoCollection::group() parámetros del tipo equivocado

  • field names must be strings

    Código: 8

    Deben formatearse los selectores de la siguiente forma: array("field1" => 1, "field2" => 1, ..., "fieldN" => 1).

  • invalid regex

    Código: 9

    La expresión regular pasada a MongoRegex no cumple la forma correcta.

  • MongoDBRef::get: $ref field must be a string

    Código: 10

  • MongoDBRef::get: $db field must be a string

    Código: 11

  • non-utf8 string: <str>

    Código: 12

    Sucede cuando se intenta enviar un texto que no es utf8 a la base de datos. Todos los textos que se envíen a la base de datos deben estar en UTF8. Revise las opciones de php.ini para conocer la opción de transición que evita esta excepción.

  • mutex error: <err>

    Código: 13

    En entornos multihebra, el driver utiliza mutex para sincronizar las peticiones y las respuestas. Este es un error crítico que no se puede trazar. Es poco usual y debe notificarse a los mantenedores junto con cualquier información del sistema y los pasos que se han seguido para reproducir el error.

  • index name too long: <len>, max <max> characters

    Código: 14

    No se crearán índices con nombres superiores a 128 caracteres. Si se obtuviera este error, se debería usar la opción "name" de MongoCollection::ensureIndex() para crear un nombre más corto para el índice.

Sinopsis de la Clase

MongoException extends Exception {
}
add a note add a note

User Contributed Notes 1 note

up
-1
janis dot peisenieks at gmail dot com
10 years 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