馃敡 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