MongoCollection
PHP Manual

MongoCollection::remove

(PECL mongo >=0.9.0)

MongoCollection::removeEliminar registros de esta colección

Descripción

public bool|array MongoCollection::remove ([ array $criteria = array() [, array $options = array() ]] )

Parámetros

criteria

Descripción de los registros que se eliminarán.

options

Opciones de eliminación.

  • "justOne"

    Eliminar solamente uno de los registros que cumplan las condiciones.

  • "safe"

    Puede ser un booleano o un entero, por omisión FALSE. Si FALSE, el programa continua su ejecución sin esperar respuesta por parte de la base de datos. Si TRUE, el programa esperará la respuesta de la base de datos y emitira una excepcion MongoCursorException si la eliminación no tuviera éxito.

    Si se estuvieran utilizando réplicas, y el maestro cambiara, al usar "safe" se provocaría que el driver desconectaría del maestro, emitiría una excepción, y en la siguiente operación se tratría de encontrar un nuevo maestro (su aplicación debe decidir si reintentará realizar de nuevo la operación sobre un nuevo maestro).

    Si no utiliza "safe" con conjuntos de réplicas y el maestro cambia, no habrá forma de que el driver conozca el cambio. En este caso, continuará la ejecución y la escritura, silenciosamente, fallará.

    Si safe fuera un entero, replicará la eliminación a ese número de máquinas antes de notificar un éxito (o lanzaría una excepción si al replicar se excediera el tiempo de espera; consulte wtimeout). Sobreescribe la variable w asignada a la colección.

  • "fsync"

    Booleano, por omisión FALSE. Obliga a que la eliminación se sincronice en disco antes de notificar éxito. Si TRUE, se realiza de manera implícita una eliminación segura (safe) y sobrescribirá el ajuste safe a FALSE.

  • "timeout"

    Entero, por omisión MongoCursor::$timeout. Si "safe" está habilitado, este valor indica por cuánto tiempo (en milisegundos) esperará el cliente la respuesta de la base de datos. Si la base de datos no respondiera en ese periodo de tiempo, se lanzaría una excepción de tipo MongoCursorTimeoutException.

Valores devueltos

Si safe fue establecido, devuelve un array que contiene el estado de la eliminación. Si no, devuelve un booleano que representa si el array no estaba vacío (un array vacío no será insertado). Los campos de este array están descritos en la documentación de la función MongoCollection::insert().

Errores/Excepciones

Lanza MongoCursorException si la opción "safe" está habilitada y la eliminación falla.

Lanza MongoCursorTimeoutException si la opción "safe" estuviera habilitada y la operación llevara más de MongoCursor::$timeout milisegundos para completarse. No detiene el proceso en el servidor; es sólo un tiempo de espera en el lado del cliente.

Historial de cambios

Versión Descripción
1.0.5 Cambiado el segundo parámetro a un array de opciones. Antes de 1.0.5, el segundo parámetro era un booleano indicando la opción "justOne" y no existía la opción "safe".
1.0.9 Añadido soporte para pasar enteros a la opción "safe" (antes sólo aceptaba booleanos) y añadida la opción "fsync".
1.0.9 El tipo de vuelto se cambió para ser un array que contiene la información del error si se usa la opción "safe", si no, es un booleano como antes.
1.0.11 Si "safe" está habilitado y hay un error que no sea en el maestro, se desconecta.
1.2.0 Añadida la opción "timeout".
1.3.0 El parámetro options ya no solo acepta un booleano que indique "soloUno" ("justOne"). En su lugar, ahora se debe hacer con array('justOne' => true).

Ejemplos

Ejemplo #1 Ejemplo de MongoCollection::remove() con justOne

<?php

$radioactivo 
$db->radioactivo;

// contar cuánto plution queda
$restante $radioactivo->count(array('type' => 94));

$vidamedia $restante/2;

// eliminar la mitad
while ($vidamedia 0) {
    
$radioactivo->remove(array('type' => 94), array("justOne" => true));
    
$vidamedia--;
}

?>

Ver también


MongoCollection
PHP Manual