🔧 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