Actualización y Reemplazo de Documentos en MongoDB
Clase 11 de 17 • Curso de Base de Datos NoSQL
Resumen
Modificar o actualizar documentos en MongoDB es esencial para manejar datos dinámicos. Aunque existen varios métodos para realizar estas acciones, los más comunes son update
y replace
. Cada uno se utiliza en diferentes escenarios y es crucial entender sus diferencias y aplicaciones.
¿Cómo se utiliza update
en MongoDB?
¿Qué es update
?
El método update
permite modificar ciertos valores de un documento que cumplen con un filtro específico. Existen variantes como updateOne
y updateMany
.
¿Cómo usar updateOne
?
Para actualizar un solo documento en MongoDB, se utiliza updateOne
. Este método requiere un filtro para identificar el documento y el operador $set
para especificar los cambios. Por ejemplo, para cambiar el nombre de un cliente:
db.customers.updateOne(
{ _id: ObjectId("5f3e5a3a29f1e8b7c2c69d62") },
{ $set: { name: "Elizabeth" } }
);
Este comando busca el documento con el _id
especificado y actualiza el campo name
.
¿Cómo usar updateMany
?
Para actualizar múltiples documentos que cumplen con un criterio, se usa updateMany
. Este método también requiere un filtro y los cambios a realizar:
db.customers.updateMany(
{ birthYear: { $gte: 1990 } },
{ $set: { membership: "Platinum" } }
);
En este ejemplo, todos los documentos donde birthYear
es mayor o igual a 1990 se actualizarán para incluir el campo membership
con el valor Platinum
.
¿Qué es replace
en MongoDB?
¿Cómo funciona replaceOne
?
El método replaceOne
reemplaza un documento completo excepto su identificador. Esto es útil cuando se necesita reestructurar un documento:
db.customers.replaceOne(
{ _id: ObjectId("5f3e5a3a29f1e8b7c2c69d62") },
{ name: "John Doe", age: 30, city: "New York" }
);
Este comando reemplaza el documento identificado por _id
con uno nuevo que tiene los campos name
, age
y city
.
¿Qué otras alternativas existen a update
y replace
?
Además de update
y replace
, MongoDB ofrece otros métodos para la manipulación de datos, como bulkWrite
, que permite realizar múltiples operaciones en una sola llamada, y findAndModify
, que devuelve y modifica documentos en un solo paso.
Ejercicio Práctico
Para seguir practicando, intenta el siguiente reto: en la base de datos de Airbnb, actualiza todos los apartamentos con menos de tres habitaciones restando 10 al precio. Esto te ayudará a aplicar los conceptos aprendidos.
db.airbnb.updateMany(
{ bedrooms: { $lt: 3 } },
{ $inc: { price: -10 } }
);