🔧 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.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias