PyMongo contiene herramientas que se utilizan para interactuar con la base de datos MongoDB. Ahora veamos cómo actualizar todos los documentos de una colección.
Actualización de todos los documentos de una colección
PyMongo incluye una función update_many() que actualiza todos los documentos que satisfacen la consulta dada.
update_many() acepta los siguientes parámetros:
- filter – Es el primer parámetro que es un criterio según el cual se actualizan los documentos que satisfacen la consulta.
- operador de actualización- Es el segundo parámetro que contiene la información a actualizar en los documentos.
- upsert- (Opcional) Es un booleano. Si se establece en verdadero y no hay ningún documento que coincida con el filtro, se crea un nuevo documento.
- array_filters – (Opcional) Es un
Operadores de actualización en MongoDB
Valores de configuración:
- $set: se usa para establecer un valor de campo.
- $setOnInsert: valor de actualización solo si se inserta un nuevo documento.
- $unset: elimina el campo y su valor.
Operadores numéricos:
- $inc: aumenta el valor en una cantidad determinada.
- $min/$max: devuelve el valor mínimo o máximo.
- $mul: multiplica los valores por una cantidad determinada.
Operadores misceláneos:
- $currentDate: Actualiza el valor de un campo a la fecha actual.
- $rename : Cambia el nombre de un campo
Base de datos de muestra:
Algunos casos de uso que vamos a ver en este artículo donde actualizar muchos registros puede ser útil:
- Cambiar o incrementar varios elementos en función de una condición.
- Insertar un nuevo campo en varios o en todos los documentos.
Ejemplo 1: Todos los alumnos con notas superiores a 35 han sido aprobados.
Python3
from pymongo import MongoClient # Creating an instance of MongoClient # on default localhost client = MongoClient('mongodb://localhost:27017') # Accessing desired database and collection db = client.gfg collection = db["classroom"] # Update passed field to be true for all # students with marks greater than 35 collection.update_many( {"marks": { "$gt": "35" } }, { "$set": { "passed" : "True" } } )
Base de datos después de la consulta:
Ejemplo 2: Nuevo campo llamado dirección agregado a todos los documentos
Python
from pymongo import MongoClient # Creating an instance of MongoClient # on default localhost client = MongoClient('mongodb://localhost:27017') # Accessing desired database and collection db = client.gfg collection = db["classroom"] # Address filed to be added to all documents collection.update_many( {}, {"$set": { "Address": "value" } }, # don't insert if no document found upsert=False, array_filters=None )
Base de datos después de la consulta:
Publicación traducida automáticamente
Artículo escrito por gauravbabbar25 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA