Chuck's Academy

Base de Datos

Operaciones DELETE en MongoDB

En este capítulo, aprenderemos a realizar operaciones DELETE en MongoDB, que nos permiten eliminar documentos de una colección. MongoDB ofrece varios métodos para eliminar documentos, ya sea de manera individual o múltiple, dependiendo de los criterios de búsqueda que especifiquemos.

Eliminando un Documento con deleteOne()

El método deleteOne() elimina el primer documento que coincida con los criterios de búsqueda. Si encontramos varios documentos que cumplen con los criterios, solo el primero será eliminado.

Ejemplo de deleteOne()

javascript
"En este ejemplo, estamos eliminando el documento de la colección users donde el campo _id es igual a uno."

Este comando eliminará únicamente el primer documento que coincida con los criterios de búsqueda, aunque haya varios que cumplan con los mismos.

Eliminando Múltiples Documentos con deleteMany()

Si necesitamos eliminar varios documentos que coincidan con un criterio, podemos usar deleteMany(). Este método elimina todos los documentos que cumplan con los criterios.

Ejemplo de deleteMany()

javascript
"Este comando elimina todos los documentos de la colección users donde la edad sea menor a 25, utilizando el operador $lt."

Eliminación Condicional

Al igual que en otras operaciones de MongoDB, podemos realizar eliminaciones basadas en condiciones complejas utilizando operadores lógicos como $and, $or, y $not. Por ejemplo, si quisiéramos eliminar usuarios que tengan más de 30 años o que no hayan verificado su correo electrónico, podríamos usar el siguiente comando:

javascript
"Aquí estamos eliminando todos los usuarios que tengan más de 30 años o que no hayan verificado su correo electrónico, utilizando el operador $or."

Ejemplo con $and

Podemos combinar condiciones con $and para eliminar documentos que cumplan con varias condiciones simultáneamente:

javascript
"En este ejemplo, estamos eliminando los documentos donde la edad es menor a 20 y el campo is_active es falso, utilizando el operador $and."

Precaución al Usar deleteMany()

Es importante tener cuidado cuando utilizamos deleteMany() para asegurarnos de que no estamos eliminando más documentos de los que realmente queremos. Si omitimos la cláusula de búsqueda, MongoDB eliminará todos los documentos de la colección.

javascript
"Este comando elimina todos los documentos de la colección users. Es importante usar deleteMany con cuidado, especialmente cuando se deja vacía la cláusula de búsqueda."

Alternativa: Soft Delete

En lugar de eliminar permanentemente los documentos, algunas aplicaciones prefieren implementar una técnica llamada soft delete, que consiste en marcar un documento como eliminado sin borrarlo realmente. Esto permite que el documento se mantenga en la base de datos pero sea excluido de las consultas.

Ejemplo de Soft Delete

javascript
"En este ejemplo, estamos marcando el documento con _id igual a dos como eliminado, añadiendo un campo deleted_at con la fecha actual."

La ventaja de esta técnica es que podemos "restaurar" los documentos eliminados simplemente eliminando o actualizando el campo deleted_at.

Resumen

En este capítulo, hemos aprendido cómo eliminar documentos en MongoDB utilizando los métodos deleteOne() y deleteMany(). También exploramos cómo utilizar operadores lógicos en las eliminaciones y cómo implementar el enfoque de soft delete para mantener los datos sin borrarlos permanentemente. En el próximo capítulo, aprenderemos a gestionar la seguridad y los permisos en MongoDB.


Pregúntame lo que sea