MongoDB es un sistema de gestión de bases de datos NoSQL. A diferencia de MySQL, los datos en MongoDB no se almacenan como relaciones o tablas. Los datos en mongoDB se almacenan como documentos. Los documentos son objetos similares a Javascript/JSON. Más formalmente, los documentos en MongoDB usan BSON. PyMongo es una API de MongoDB para python. Permite leer y escribir datos de una base de datos MongoDB utilizando un script de python. Necesita que Python y mongoDB estén instalados en el sistema.
Actualizar_muchos()
La función de actualización ha quedado obsoleta en las versiones más recientes de MongoDB (3.xx y superiores). La función de actualización anterior podría usarse tanto para actualizaciones individuales como múltiples usando «multi = true». Pero en las versiones más nuevas de mongoDB se recomienda usar update_many() y update_one().
La principal diferencia es que el usuario debe planificar con anticipación si la consulta actualizará uno o varios documentos.
Sintaxis:
db.collection.updateMany( <filter>, <update>, { upsert: <boolean>, writeConcern: <document>, collation: <document>, arrayFilters: [ <filterdocument1>, ... ], hint: <document|string> } )
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 Aadhar Tyagi y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA