Para agentes de IA: hay un índice de documentación disponible en https://www.mongodb.com/es/docs/llms.txt — versiones en markdown de todas las páginas están disponibles agregando .md a cualquier ruta URL.
Docs Menu

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:

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

El atributo $fillable 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 Personalizar la asignación masiva en la documentación de la Clase de Modelo 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.

  • Encadene métodos 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 borrar 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 recuperar de la llamada no coincide con ningún documento de la colección, la operación retorna 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.

Puedes borrar varios documentos de las siguientes maneras:

  • Llama al método Model::destroy($ids), pasando una lista de los IDs de los documentos o instancias de modelo que se van a borrar.

  • 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 que coincidan y borrarlos:

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.

Las siguientes secciones proporcionan ejemplos de código totalmente ejecutables que demuestran cómo borrar documentos utilizando la integración de Laravel. Estos ejemplos utilizan la colección sample_mflix.movies de los conjuntos de datos de muestra de Atlas.

Tip

Puedes ejecutar los ejemplos completos desde tu propia aplicación Laravel o desde la aplicación my-app creada en el tutorial Introducción. Los ejemplos utilizan la clase de modelo Movie.php creada en este tutorial para demostrar operaciones en la colección de MongoDB movies. Para ejecutar la operación, puedes copiar el código de muestra en un endpoint del controlador en tu aplicación Laravel.

Para ver la salida esperada de la operación, puedes agregar una ruta web a tu aplicación que llame a la función controladora y devuelva el resultado a una interfaz web.

Seleccione de las siguientes pestañas Eloquent y Query Builder para ver ejemplos de cada sintaxis de query correspondiente:

Este ejemplo realiza las siguientes acciones:

  • Utiliza el modelo Movie Eloquent para representar la colección movies en la base de datos sample_mflix

  • Elimina un documento de la colección movies que coincide con un filtro de query

  • Imprime el número de documentos borrados.

El ejemplo llama a los siguientes métodos en el modelo Movie:

  • where():: Coincide con los documentos en los que el valor del campo title es "Quiz Show"

  • limit(): Recupera solo el primer documento coincidente

  • delete()Elimina el documento recuperado

$deleted = Movie::where('title', 'Quiz Show')
->limit(1)
->delete();
echo 'Deleted documents: ' . $deleted;
Deleted documents: 1

Este ejemplo realiza las siguientes acciones:

  • Accede a la colección movies llamando al método table() desde la fachada DB

  • Elimina un documento de la colección movies que coincide con un filtro de query

  • Imprime el número de documentos borrados.

El ejemplo llama a los siguientes métodos para crear query:

  • where():: Coincide con los documentos en los que el valor del campo title es "Quiz Show"

  • limit(): Recupera solo el primer documento coincidente

  • delete()Elimina el documento recuperado

$deleted = DB::table('movies')
->where('title', 'Quiz Show')
->limit(1)
->delete();
echo 'Deleted documents: ' . $deleted;
Deleted documents: 1

Seleccione de las siguientes pestañas Eloquent y Query Builder para ver ejemplos de cada sintaxis de query correspondiente:

Este ejemplo realiza las siguientes acciones:

  • Utiliza el modelo Movie Eloquent para representar la colección movies en la base de datos sample_mflix

  • Elimina documentos de la colección movies que coinciden con un filtro de query

  • Imprime el número de documentos borrados.

El ejemplo llama a los siguientes métodos en el modelo Movie:

  • where()Coincide con los documentos en los que el valor del campo year es menor o igual que 1910.

  • delete(): Elimina los documentos que coinciden y devuelve el número de documentos eliminados con éxito

$deleted = Movie::where('year', '<=', 1910)
->delete();
echo 'Deleted documents: ' . $deleted;
Deleted documents: 7

Este ejemplo realiza las siguientes acciones:

  • Accede a la colección movies llamando al método table() desde la fachada DB

  • Elimina documentos de la colección movies que coinciden con un filtro de query

  • Imprime el número de documentos borrados.

El ejemplo llama a los siguientes métodos para crear query:

  • where()Coincide con los documentos en los que el valor del campo year es menor o igual que 1910.

  • delete(): Elimina los documentos que coinciden y devuelve el número de documentos eliminados con éxito

$deleted = DB::table('movies')
->where('year', '<=', 1910)
->delete();
echo 'Deleted documents: ' . $deleted;
Deleted documents: 7

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

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

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