Artículos
Python

Actualizar un documento con Pymongo

06/Jun/2016

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

from pymongo import MongoClient

client = 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.

db = client.test
users = 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 atualizar un documento con Pymongo tenemos dos alternativas, por un lado está el actualizar el primer documento de la colección que coincida con la buscado, para este caso tenemos el método update_one() o bien actualizar todos los documentos de la colección que coincidan con la estructura buscada, en este caso deberemos de utilizar el método update_many()

La estructura de ambos métodos es la siguiente:

coleccion.update_one(documento_buscado,operador_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á:

doc = {
  edad: 30
}

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

doc = {
  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_one() deberá de ser un documento que contenga un operador de actualización: $set, $pull, $push,…

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:

{"$set": {"edad":31}})

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

resultado = users.update_many(olduser,{"$set": {"edad":31}})

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 'Numero de documentos modificados ' + str(resultado.modified_count)

Código Fuente

Descárgate el código fuente de Actualizar un documento con Pymongo
Y si te ha gustado nuestro código fuente puedes regalarnos una estrella Star
Suscribir
Notificar de
guest
0 Comentarios
Opiniones integradas
Ver todos los comentarios