Overview
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:
Modelo de muestra
Las operaciones de esta guía hacen referencia a la siguiente clase de modelo Eloquent:
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.
Borrar un documento
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_iddel documento que se eliminará.
Método delete()
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.
Método destroy()
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.
Borra varios documentos
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().
Método destroy()
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.
Método delete()
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.
Información Adicional
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.