8. Eliminar documentos

La última operación básica es eliminar documentos. Úsala con precaución.

Eliminar un documento

Para eliminar un solo documento usa deleteOne:

// Elimina el primer listado que coincide
db.listings.deleteOne({ name: "Mi apartamento en Barcelona" })

MongoDB elimina solo el primer documento que encuentra con ese filtro.

Eliminar múltiples documentos

Para eliminar todos los documentos que coinciden con un filtro usa deleteMany:

// Elimina todos los listados de un barrio específico
db.listings.deleteMany({ neighbourhood_group_cleansed: "TEST" })

¡Cuidado! Si ejecutas deleteMany({}) sin filtro, borrarás toda la colección.

Verificar antes de eliminar

Es una buena práctica contar cuántos documentos se eliminarán antes de ejecutar el comando:

// Primero cuenta
db.listings.countDocuments({ price: "$0.00" })

// Si estás seguro, elimina
db.listings.deleteMany({ price: "$0.00" })

Eliminar vs Drop

Hay diferencia entre eliminar documentos y eliminar la colección completa:

// Elimina TODOS los documentos (pero mantiene la colección)
db.listings.deleteMany({})

// Elimina la colección COMPLETA (incluyendo índices)
db.listings.drop()

Usar drop() es más rápido si quieres eliminar todo, pero también elimina los índices que hayas creado.

No se puede deshacer

Las eliminaciones son permanentes. MongoDB no tiene un comando "undo". Por eso es importante:

  1. Hacer backups regulares
  2. Probar tus filtros con find() antes de usar deleteMany()
  3. Usar deleteOne() cuando solo quieres eliminar un documento
Actividad 1

Advertencia: Estas operaciones eliminan datos permanentemente. Trabaja con cuidado.

  1. Inserta un listado de prueba con tu nombre en el campo name
  2. Elimina ese listado usando deleteOne()
  3. Inserta 3 listados de prueba con el barrio "TEST"
  4. Cuenta cuántos documentos hay con el barrio "TEST"
  5. Elimina todos los listados del barrio "TEST" usando deleteMany()

Pro:

  1. Crea una nueva colección llamada temporal e inserta 10 documentos
  2. Elimina los primeros 5 documentos usando deleteMany() con un filtro apropiado
  3. Elimina la colección completa usando drop() y verifica que ya no existe con show collections

Soluciones

This work is under a Attribution-NonCommercial-NoDerivatives 4.0 International license.

Desafíos de programación atemporales y multiparadigmáticos

Desafíos de programación atemporales y multiparadigmáticos

Te encuentras ante un librillo de actividades, divididas en 2 niveles de dificultad. Te enfrentarás a los casos más comunes que te puedes encontrar en pruebas técnicas o aprender conceptos elementales de programación.

Buy the book

Will you buy me a coffee?

Comments

There are no comments yet.

Visitors in real time

You are alone: 🐱