Docs Menu
Docs Home
/ /

Delete Documents

En esta guía, aprenderá a eliminar documentos de una colección de MongoDB mediante la integración de Laravel. Utilice operaciones de eliminación para eliminar datos de su base de datos MongoDB.

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

  • Eliminar un documento

  • Eliminar varios documentos

Las operaciones de 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

El $fillable El atributo permite usar la asignación masiva de Laravel para operaciones de inserción. Para obtener más información sobre la asignación masiva, consulte Personalice la asignación masiva en la documentación de la clase del modelo Eloquent.

El $casts atributo indica a Laravel que convierta los atributos a tipos de datos comunes. Para obtener más información, consulta "Conversión de atributos" en la documentación de Laravel.

Puede eliminar un documento de las siguientes maneras:

  • Llame 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().

  • Llame al método Model::destroy($id) del modelo y pase el valor _id del documento que se eliminará.

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 coincidente y eliminarlo:

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

Nota

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

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

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

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

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

Cuando el método destroy() tiene éxito, devuelve el número de documentos eliminados.

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.

  • Métodos de cadena para recuperar un objeto de colección de Laravel que hace referencia a múltiples objetos y eliminarlos llamando al método delete().

El siguiente ejemplo muestra cómo eliminar un documento pasando una matriz de valores _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 el número de documentos eliminados.

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 el número de documentos eliminados.

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

Para obtener más información sobre las características de Laravel disponibles en la integración de Laravel que modifican el comportamiento de eliminación, consulte las siguientes secciones:

  • Eliminación temporal, que le permite marcar documentos como eliminados en lugar de quitarlos 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