downloads | documentation | faq | getting help | mailing lists | licenses | wiki | reporting bugs | php.net sites | conferences | my php.net

search for in the

MongoCollection::save> <MongoCollection::insert
[edit] Last updated: Fri, 17 May 2013

view this page in

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.

  • "w"

    Véase WriteConcerns. El valor predeterminado de MongoClient es 1.

  • "justOne"

    Eliminar solamente uno de los registros que cumplan las condiciones.

  • "fsync"

    Booleano, su valor predeterminado es FALSE. Fuerza a la inserción a estar sincronizada con el disco antes de devolver éxito. Si es TRUE, está implicada una inserción declarada y sobrescribirá el ajuste w a 0.

  • "timeout"

    Entero, su valor predeterminado es MongoCursor::$timeout. Si se establece a "safe", establece cuánto espera el cliente (en milisegundos) a un respuesta de la base de datos. Si la base de datos no responde dentro del periodo del tiempo de espera, será lanzada una MongoCursorTimeoutException.

  • "safe"

    Obsoleto. Use la opción w de WriteConcern.

Valores devueltos

Devuelve un array que contiene el estado de la eliminación si está establecida la opción "w". De lo contrario, devuelve TRUE.

Los campos del array de estado están descritros en la documentación de MongoCollection::insert().

Errores/Excepciones

Lanza una MongoCursorException si la opción "w" está establecida y la escritura falla.

Lanza una MongoCursorTimeoutException si la opción "w" está establecida a un valor mayor que uno y la operación toma más de MongoCursor::$timeout milisegundos en completarse. Esto no pondrá fin a la operación en el servidor, es un tiempo de espera del lado del cliente. La operación en MongoCollection::$wtimeout es milisegundos.

Historial de cambios

Versión Descripción
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).
1.2.11 Emite un error de nivel E_DEPRECATED cuando options es de tipo scalar.
1.2.0 Se añadió la opción "timeout".
1.0.11 Se desconcecta cuando ocurren errores "not master" si "safe" está establecido.
1.0.9

Se añadió la capacidad de pasar números enteros a la opción "safe", la cual anteriomente sólo aceptaba valores booleanos.

Se añadío la opción "fsync".

Es tipo devuelto se cambio para que fuera un array que contuviera la información del error si se usaba la opción "safe". De otro modo, se devolvía un valor booleano como antes.

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 "safe".

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



add a note add a note User Contributed Notes MongoCollection::remove - [2 notes]
up
1
konstantin718 at gmail dot com
3 months ago
If you try to remove a document that doesn't exist, remove() won't throw an exception.

Even if 'w' is set to 1, remove() will return an array similar to this:

Array ( [n] => 0 [connectionId] => 10726 [err] => [ok] => 1 )

So, in order to see if a remove() was really successful, you need to look at [n] key.  If it's 0, that means the remove() did not remove any documents.

If remove() is successful, [n] will be > 0.
up
1
David Winter
3 years ago
To remove a document based on its ID, you need to ensure that you pass the ID as a MongoID object rather than just a string:

<?php
$id
= '4b3f272c8ead0eb19d000000';

// will not work:
$collection->remove(array('_id' => $id), true);

// will work:
$collection->remove(array('_id' => new MongoId($id)), true);
?>

 
show source | credits | sitemap | contact | advertising | mirror sites