Actualice todos los documentos en una colección usando PyMongo

MongoDB

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:

  1.  filter – Es el primer parámetro que es un criterio según el cual se actualizan los documentos que satisfacen la consulta.
  2. operador de actualización- Es el segundo parámetro que contiene la información a actualizar en los documentos.
  3. 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.
  4. 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: 

  1. Cambiar o incrementar varios elementos en función de una condición.
  2. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *