11.5. Eliminar documentos en MongoDB: eliminar documentos con condiciones
Una de las operaciones más críticas en cualquier sistema de gestión de bases de datos es la eliminación de documentos. En MongoDB, esto no es diferente. Eliminar documentos es una tarea que se debe realizar con mucho cuidado ya que una vez eliminado un documento no se puede recuperar. En esta sección, discutiremos cómo eliminar documentos en MongoDB con condiciones.
MongoDB proporciona dos métodos para eliminar documentos de una colección: deleteOne()
y deleteMany()
. Ambos métodos aceptan un objeto de condición como argumento. Este objeto de condición es similar al que usamos en la operación de búsqueda. Especifica las condiciones que deben cumplir los documentos para ser eliminados.
Eliminar documentos con condiciones usando deleteOne()
El método deleteOne()
elimina el primer documento que coincide con la condición especificada. Por ejemplo, si queremos eliminar un documento cuyo campo 'nombre' es 'Juan', podemos hacerlo de la siguiente manera:
db.collection('usuarios').deleteOne({ nombre: 'John' });
Este comando eliminará el primer documento de la colección 'usuarios' donde el campo 'nombre' es 'John'. Si hay varios documentos que cumplen esta condición, solo se eliminará el primero.
Eliminar documentos con condiciones usando deleteMany()
El método deleteMany()
elimina todos los documentos que coinciden con la condición especificada. Por ejemplo, si queremos excluir todos los documentos cuyo campo 'edad' sea inferior a 18 años, podemos hacerlo de la siguiente manera:
db.collection('usuarios').deleteMany({ edad: { $lt: 18 } });
Este comando eliminará todos los documentos de la colección 'usuarios' donde el campo 'edad' sea inferior a 18 años. A diferencia del método deleteOne()
, el método deleteMany() código> no se detiene después de eliminar el primer documento que cumple la condición. Continúa recorriendo la colección hasta que se eliminen todos los documentos que cumplan la condición.
Eliminación de documentos con condiciones complejas
Las condiciones para eliminar documentos no tienen por qué ser sencillas. Podemos especificar condiciones complejas utilizando operadores lógicos y de comparación. Por ejemplo, si queremos excluir todos los documentos cuyo campo 'edad' sea menor de 18 años y cuyo campo 'país' sea 'EE.UU.', podemos hacerlo de la siguiente manera:
db.collection('usuarios').deleteMany({ edad: { $lt: 18 }, país: 'EE.UU.' });
Este comando eliminará todos los documentos de la colección 'usuarios' donde el campo 'edad' sea menor de 18 años y el campo 'país' sea 'EE.UU.'. Las condiciones se evalúan juntas, lo que significa que un documento debe cumplir todas las condiciones para ser eliminado.
Conclusión
Eliminar documentos es una operación crítica que debe realizarse con cuidado. En MongoDB, podemos eliminar documentos usando los métodos deleteOne()
y deleteMany()
, que aceptan un objeto de condición como argumento. Las condiciones pueden ser simples o complejas, dependiendo de las necesidades de nuestra aplicación.