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:
Ejemplo
# 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":
Ejemplo
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:12345/")
mydb = myclient["bbdd"]
mycol = mydb["Clientes"]
myquery = { "Direccion": "C/Mayor, 1" }
mycol.delete_one(myquery)
print(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
myqueryque 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 enmyqueryde la colecciónmycol.
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:
Ejemplo
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":
Ejemplo
print("Documento no encontrado o no eliminado.")
Practica DELETE DOCUMENT en MongoDB con Python en el editor
Pon en práctica lo aprendido con nuestro editor Python interactivo. Cada ejercicio incluye el código de partida y un botón para abrirlo en una nueva pestaña, donde puedes modificarlo y ejecutarlo.
Ejercicio: Mongodb Delete Document
Practica mongodb delete document en el editor interactivo.
Comprueba lo aprendido
Responde 2–3 preguntas sobre esta lección. Verás ✓ en verde si aciertas o ✗ en rojo si fallas.