馃敡 Operadores de actualizaci贸n (Update Operators)

Operadores de actualizaci贸n en MongoDB

馃敡 Operadores de actualizaci贸n (Update Operators)

Los operadores de actualizaci贸n en MongoDB permiten modificar documentos de forma flexible y precisa. En lugar de reemplazar un documento completo, puedes actualizar solo los campos deseados: sumar, restar, a帽adir elementos a arrays, eliminar campos, modificar tipos, etc.


馃搶 1️⃣ Tipos principales de operadores de actualizaci贸n

  • Campos: $set, $unset, $rename
  • Incrementos: $inc, $mul
  • Arrays: $push, $addToSet, $pull, $pop
  • Operadores para fechas: $currentDate
  • Reemplazo total: actualizaci贸n directa con un documento nuevo

馃洜️ 2️⃣ $set — Actualizar o crear campos

// Actualizar un campo
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $set: { precio: 69.99 } }
);

// Crear un campo que no exist铆a
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $set: { oferta: true } }
);
  

$set es el operador m谩s usado para actualizar valores.


❌ 3️⃣ $unset — Eliminar un campo

// Eliminar el campo 'oferta'
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $unset: { oferta: "" } }
);
  

El valor asignado a $unset no importa; el campo ser谩 eliminado.


馃 4️⃣ $rename — Renombrar campos

// Renombrar un campo
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $rename: { "precio": "precio_unitario" } }
);
  

Permite mantener tu base actualizada sin perder datos.


➕ 5️⃣ $inc — Incrementar valores num茅ricos

// Sumar 10 al stock
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $inc: { stock: 10 } }
);

// Restar
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $inc: { stock: -5 } }
);
  

Es 煤til para sistemas de inventarios, contadores o estad铆sticas.


✖️ 6️⃣ $mul — Multiplicar valores

// Multiplicar el precio por 1.10 (subir precio 10%)
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $mul: { precio_unitario: 1.10 } }
);
  

Permite modificar valores masivamente de forma matem谩tica.


馃З 7️⃣ Operadores para arrays

馃摜 $push — a帽adir elementos
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $push: { etiquetas: "gaming" } }
);
  
馃洃 $pull — eliminar elementos coincidentes
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $pull: { etiquetas: "gaming" } }
);
  
馃Р $addToSet — a帽adir solo si no existe
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $addToSet: { etiquetas: "oferta" } }
);
  
⬇️ $pop — quitar primero o 煤ltimo
// Eliminar el 煤ltimo elemento
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $pop: { etiquetas: 1 } }
);

// Eliminar el primero
db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $pop: { etiquetas: -1 } }
);
  

馃搮 8️⃣ $currentDate — Actualizar fechas autom谩ticamente

db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $currentDate: { actualizado: true } }
);
  

Tambi茅n acepta tipo timestamp:

db.productos.updateOne(
  { nombre: "Teclado mec谩nico" },
  { $currentDate: { actualizado: { $type: "timestamp" } } }
);
  

馃И 9️⃣ Ejemplos reales combinando operadores

// Actualizar varios campos a la vez
db.productos.updateOne(
  { _id: ObjectId("6742ab32c1a45") },
  {
    $set: { nombre: "Teclado RGB Pro" },
    $inc: { stock: 20 },
    $addToSet: { etiquetas: "RGB" },
    $currentDate: { actualizado: true }
  }
);
  

MongoDB permite mezclar diferentes operadores dentro de una misma operaci贸n.


馃Л 馃敓 Resumen r谩pido

  • $set: crear o actualizar campos.
  • $unset: eliminar campos.
  • $inc, $mul: operaciones matem谩ticas.
  • $push, $pull, $addToSet: modificar arrays.
  • $currentDate: actualizar fechas.

Publicar un comentario

0 Comentarios