Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

Delete Documents

En esta guía, puedes aprender cómo borrar documentos de una colección de MongoDB utilizando la integración de Laravel. Utiliza operaciones de borrado para remover datos de tu base de datos MongoDB.

Esta sección proporciona ejemplos de las siguientes operaciones de borrado:

  • Borrar un documento

  • Borra varios documentos

Las operaciones en esta guía hacen referencia a la siguiente clase de modelo Eloquent:

Concierto.php
<?php
namespace App\Models;
use MongoDB\Laravel\Eloquent\Model;
class Concert extends Model
{
protected $connection = 'mongodb';
protected $fillable = ['performer', 'venue', 'genres', 'ticketsSold', 'performanceDate'];
protected $casts = ['performanceDate' => 'datetime'];
}

Tip

La $fillable el atributo te permite utilizar la asignación masiva de Laravel para operaciones de inserción. Para obtener más información sobre la asignación masiva, consulta Personaliza la asignación masiva en la documentación de la Clase de Modelos Eloquent.

El atributo $casts indica a Laravel que debe convertir los atributos a tipos de datos comunes. Para seguir aprendiendo, consulta Conversión de atributos en la documentación de Laravel.

Puedes borrar un documento de las siguientes maneras:

  • Llama al método $model->delete() en una instancia del modelo.

  • Métodos de cadena para recuperar y eliminar una instancia de un modelo llamando al método delete().

  • Llama al método Model::destroy($id) en el modelo, pasándole el valor _id del documento que debe borrarse.

El siguiente ejemplo muestra cómo eliminar un documento llamando a $model->delete() en una instancia del modelo:

$concert = Concert::first();
$concert->delete();

Cuando el método delete() tiene éxito, la operación devuelve el número de documentos eliminados.

Si la parte de recuperación de la llamada no coincide con ningún documento de la colección, la operación devuelve 0.

El siguiente ejemplo muestra cómo encadenar llamadas para recuperar el primer documento que coincida y borrarlo:

Concert::where('venue', 'Carnegie Hall')
->limit(1)
->delete();

Nota

La llamada orderBy() ordena los resultados por el campo _id para garantizar un orden de clasificación consistente. Para obtener más información sobre la ordenación en MongoDB, consulte la entrada de glosario Orden natural en el manual del servidor.

Cuando el método delete() tiene éxito, devuelve la cantidad de documentos borrados.

Si el método where() no coincide con ningún documento, el método delete() devuelve 0.

El siguiente ejemplo muestra cómo borrar un documento pasando el valor de su _id al método Model::destroy($id):

$id = 'MSG-0212252000';
Concert::destroy($id);

Cuando el método destroy() tiene éxito, devuelve la cantidad de documentos borrados.

Si el valor _id no coincide con ningún documento, el método destroy() devuelve 0.

Puede eliminar varios documentos de las siguientes maneras:

  • Llame al método Model::destroy($ids), pasando una lista de los identificadores de los documentos o instancias del modelo que se eliminarán.

  • Encadena métodos para recuperar un objeto de colección de Laravel que haga referencia a múltiples objetos y borrarlos llamando al método delete().

El siguiente ejemplo muestra cómo borrar un documento pasando un arreglo de valores de _id, representados por $ids, al método destroy():

$ids = [3, 5, 7, 9];
Concert::destroy($ids);

Tip

El rendimiento del método destroy() disminuye cuando se le pasan listas grandes. Para un mejor rendimiento, utilice Model::whereIn('id', $ids)->delete() en su lugar.

Cuando el método destroy() tiene éxito, devuelve la cantidad de documentos borrados.

Si los valores _id no coinciden con ningún documento, el método destroy() devuelve 0.

El siguiente ejemplo muestra cómo encadenar llamadas para recuperar documentos coincidentes y eliminarlos:

Concert::where('ticketsSold', '>', 7500)
->delete();

Cuando el método delete() tiene éxito, devuelve la cantidad de documentos borrados.

Si el método where() no coincide con ningún documento, el método delete() devuelve 0.

Para conocer las funcionalidades de Laravel disponibles en la integración de Laravel que modifican el comportamiento de borrado, consulta las siguientes secciones:

  • Borrado suave, que te permite marcar los documentos como eliminados en lugar de removerlos de la base de datos

  • Poda, que permite definir condiciones que califican un documento para su eliminación automática

Para ver ejemplos de código ejecutables que demuestran cómo borrar documentos utilizando la integración de Laravel, consulta los siguientes ejemplos de uso:

Para aprender cómo insertar documentos en una colección MongoDB, consulta la guía Insertar documentos.

Volver

Modify

En esta página