DELETE DOCUMENT en MongoDB con Python

Para eliminar un documento de una colección en MongoDB desde Python, necesitas utilizar la biblioteca PyMongo, que es el controlador oficial de MongoDB para Python.

Importante: Si la consulta encuentra más de un documento, solo se elimina la primera aparición.

A continuación, te muestro cómo puedes eliminar un documento de una colección utilizando PyMongo:

# Importar la biblioteca PyMongo
import pymongo

# Conexión a la base de datos de MongoDB
client = pymongo.MongoClient("mongodb://localhost:27017/")
db = client["nombre_base_de_datos"]
collection = db["nombre_coleccion"]

# Definir el criterio para eliminar el documento (por ejemplo, por un campo específico)
criterio = {"campo": "valor_a_eliminar"}

# Eliminar el documento que cumple el criterio
if collection.count_documents(criterio) > 0:
    result = collection.delete_one(criterio)
    print("Documento eliminado con éxito.")
else:
    print("Documento no encontrado o no eliminado.")

Asegúrate de reemplazar «nombre_base_de_datos» y «nombre_coleccion» con los nombres adecuados de tu base de datos y colección en MongoDB. También, define el criterio adecuado para identificar el documento que deseas eliminar. En el ejemplo, se utiliza un campo y un valor específico para identificar el documento.

El método delete_one() se utiliza para eliminar un único documento que cumple con el criterio especificado. Si deseas eliminar múltiples documentos que cumplan un criterio, puedes utilizar el método delete_many() en lugar de delete_one().

Recuerda que la eliminación de documentos en MongoDB es una operación irreversible. Asegúrate de tener cuidado al usarla y ten en cuenta que se eliminará de manera permanente el documento que coincida con el criterio especificado.


Ejemplo DELETE DOCUMENT en MongoDB con Python

Borre el documento con la dirección «C/Mayor, 1»:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]

myquery = { "Direccion": "C/Mayor, 1" }

mycol.delete_one(myquery)

El código muestra cómo eliminar un documento de una colección en MongoDB utilizando la biblioteca PyMongo en Python.

  • Importar PyMongo: Importamos la biblioteca PyMongo al comienzo del código para poder interactuar con la base de datos MongoDB desde Python.
  • Conexión a la base de datos: Establecemos una conexión con la base de datos MongoDB. Usamos el URI de conexión «mongodb://localhost:12345/», donde «localhost» representa el host donde se ejecuta MongoDB y «12345» es el número de puerto en el que MongoDB está escuchando.
  • Acceder a la base de datos y la colección: Accedemos a la base de datos llamada «bbdd» y a la colección llamada «Clientes». Estos nombres se utilizan para identificar la ubicación de los datos dentro de la base de datos.
  • Definir el criterio de eliminación: Definimos un diccionario llamado myquery que contiene el criterio para eliminar el documento. En este caso, queremos eliminar el documento que tenga el campo «Direccion» con el valor «C/Mayor, 1».
  • Eliminar el documento: Utilizamos el método delete_one() para eliminar un único documento que cumpla con el criterio especificado en myquery de la colección mycol.

Recuerda que la eliminación de documentos en MongoDB es una operación irreversible. Asegúrate de tener cuidado al utilizarla, ya que se eliminará de manera permanente el documento que cumpla con el criterio especificado.


Eliminar varios documentos en MongDB con Python

Para eliminar más de un documento, use el método delete_many().

El primer parámetro del método delete_many() es un objeto de consulta que define qué documentos eliminar.

Eliminar todos los documentos donde la dirección comience con la letra M:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]

myquery = { "Dirección": {"$regex":"^M"} }

x = mycol.delete_many(myquery)

print(x.deleted_count,"Archivos borrados.")

Eliminar todos los documentos en una colección en MongoDB con Pyhton

Para eliminar todos los documentos de una colección, pase un objeto de consulta vacío al método delete_many():

Eliminar todos los documentos en la colección de «clientes»:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]

x = mycol.delete_many({})

print(x.deleted_count,"Documentos Borrados")