Ir al contenido

Actualizar un documento con Pymongo

Ya hemos insertado y consultado documentos con Pymongo, en este ejemplo vamos a ver cómo podemos actualizar un documento con Pymongo.

Lo primero de todo importar la librería Pymongo en nuestro programa:

import pymongo
from pymongo import MongoClient

Mediante el MongoClient vamos a establecer la conexión con la base de datos MongoDB. Una vez establecida deberemos de seleccionar qué base de datos y colección vamos a utilizar.

client = MongoClient('[localhost](http://localhost/)', 27017)
db = client['test']
coleccion = db['users']

En el código podemos comprobar que la base de datos a utilizar es test y que la colección se llama users.

Para poder actualizar un documento con Pymongo tenemos dos alternativas:

  • update_one(): actualiza el primer documento de la colección que coincida con el criterio de búsqueda
  • update_many(): actualiza todos los documentos de la colección que coincidan con el criterio de búsqueda

La estructura de ambos métodos es la siguiente:

coleccion.update_one(filtro, actualizacion)
coleccion.update_many(filtro, actualizacion)

Lo primero será crear un documento que contenga los datos mínimos de los documentos a actualizar. Por ejemplo, queremos actualizar a todas las personas que tengan una edad de 30 años. En este caso el documento será:

filtro = {"edad": 30}

O bien podemos querer actualizar todos aquellos documentos de personas que tengan 30 años y que se llamen ‘Pilar’.

filtro = {"edad": 30, "nombre": "Pilar"}

Podemos añadir los atributos que deseemos en el documento de búsqueda.

El segundo atributo de los métodos update_one() y update_many() deberá de ser un documento que contenga un operador de actualización: $set, $pull, $push, etc. Este operador de actualización añadirá, actualizará o eliminará información de alguna de las propiedades del documento.

Por ejemplo, si queremos actualizar la propiedad edad, antes buscada, e indicar que ahora la edad es 31, escribiremos lo siguiente:

actualizacion = {"$set": {"edad": 31}}

Ya solo nos quedará ejecutar los métodos update_one() o update_many().

resultado = coleccion.update_one(filtro, actualizacion)
# O bien
resultado = coleccion.update_many(filtro, actualizacion)

En la variable resultado queda información relativa al resultado obtenido, en concreto nos deja la variable modified_count con el número de documentos que se han actualizado. Podemos ver el efecto de actualizar un documento con Pymongo escribiendo:

print("Documentos actualizados:", resultado.modified_count)
Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Actualizar un documento con Pymongo

Descubre cómo actualizar un documento con Pymongo y mejora la gestión de tus datos en MongoDB de manera fácil y eficiente. ¡No te lo pierdas!

Descargar código