Update en MongoDB
Cómo realizar operaciones de actualización UPDATE en MongoDB utilizando el shell de MongoDB (mongosh).
MongoDB almacena documentos JSON flexibles. Esta operación encaja en el flujo consultar → filtrar → transformar → agregar que verás en el tutorial completo.
Prueba en el editor y adapta los campos del documento a tu caso de uso.
- Actualizar un documento específico.
-
Utilizar
updateOne()para actualizar un documento. - Insertar un documento si no se encuentra.
-
Utilizar
updateMany()para actualizar varios documentos a la vez.
Actualizar un documento específico con updateOne()
La operación
updateOne()
te permite actualizar un solo documento que cumple con ciertos criterios. Por ejemplo, supongamos que tienes una colección de "usuarios" y deseas actualizar la edad de un usuario específico cuyo nombre es "Ejemplo".
Ejemplo
db.tu_coleccion.updateOne(
{ nombre: "Ejemplo" },
{ $set: { edad: 35 } }
)
En este caso,
updateOne()
busca un documento con el campo "nombre" igual a "Ejemplo" y actualiza su campo "edad" a 35 utilizando el operador
$set
.
Insertar un documento si no se encuentra
Si deseas actualizar un documento, pero si no se encuentra, insertarlo, puedes utilizar la opción
upsert: true
con
updateOne()
. Por ejemplo, si deseas actualizar la dirección de correo electrónico de un usuario por su nombre y, si no se encuentra, insertar un nuevo usuario:
Ejemplo
// Actualizar un documento en la colección
db.tu_coleccion.updateOne(
{ nombre: "Ejemplo" },
{ $set: { email: "nuevo@example.com" } },
{ upsert: true
Con
upsert: true
, si no se encuentra un documento con el nombre "Ejemplo", se creará un nuevo documento con el nombre, la edad y la dirección de correo electrónico proporcionados.
Actualizar varios documentos con updateMany()
Para actualizar varios documentos que cumplan con un conjunto de criterios, puedes utilizar la función
updateMany()
. Por ejemplo, si deseas aumentar la edad en 1 de todos los usuarios cuya edad sea menor de 30:
Ejemplo
db.tu_coleccion.updateMany(
{ edad: { $lt: 30 } }, // Filtro: Edad menor de 30
{ $inc: { edad: 1 } } // Incrementa la edad en 1
)
Este comando busca todos los documentos que tengan una edad menor de 30 y aumenta la edad en 1 unidad.
Esos son los pasos básicos para realizar operaciones de actualización en MongoDB utilizando el shell de MongoDB (mongosh). Asegúrate de ajustar los nombres de la base de datos y la colección, así como los criterios de búsqueda y las actualizaciones, según tus necesidades específicas. Las operaciones de actualización son esenciales para mantener tus datos actualizados en MongoDB.