MongoDB Documento Update() con ejemplo
\
โก Resumen inteligente
MongoDB Las operaciones Update() modifican los registros existentes en una colecciรณn. El mรฉtodo update() requiere una condiciรณn para seleccionar documentos y un modificador como $set para cambiar los valores de los campos. La opciรณn multi actualiza varios documentos coincidentes a la vez.

Actualizaciones de documentos bรกsicos
MongoDB proporciona el comando update() para actualizar los documentos de una colecciรณn. Para actualizar solo los documentos que desea actualizar, puede agregar un criterio a la declaraciรณn de actualizaciรณn para que solo se actualicen los documentos seleccionados.
Los parรกmetros bรกsicos en el comando son una condiciรณn para la cual el documento debe actualizarse y la siguiente es la modificaciรณn que debe realizarse.
El siguiente ejemplo muestra cรณmo se puede hacer esto.
Paso 1) Emita el comando de actualizaciรณn
Paso 2) Elija la condiciรณn que desea utilizar para decidir quรฉ documento debe actualizarse. En nuestro ejemplo, queremos actualizar el documento que tiene la identificaciรณn de empleado 22.
Paso 3) Utilice el comando set para modificar el nombre del campo
Paso 4) Elija quรฉ nombre de campo desea modificar e ingrese el nuevo valor en consecuencia.
db.Employee.update( {"Employeeid" : 1}, {$set: { "EmployeeName" : "NewMartin"}});
Si el comando se ejecuta correctamente, se mostrarรก la siguiente salida
Salida:
El resultado muestra claramente que un registro coincidรญa con la condiciรณn y, por lo tanto, se modificรณ el valor del campo relevante.
MongoDB Actualizar Operatoros
El operador $set es la forma mรกs comรบn de cambiar un campo, pero MongoDB Proporciona varios operadores de actualizaciรณn para diferentes necesidades. Se colocan en el segundo argumento de update() junto con o en lugar de $set:
- $set: Establece el valor de un campo, creรกndolo si no existe.
- $unset: Elimina un campo del documento por completo.
- $inc: Incrementa o disminuye un campo numรฉrico en una cantidad determinada.
- $mul: Multiplica el valor de un campo numรฉrico.
- $cambiar nombre: Cambia el nombre de un campo a uno nuevo.
- $push: Agrega un valor a un campo de matriz.
- $pull: Elimina los valores coincidentes de un campo de matriz.
Cada operador actรบa รบnicamente sobre los campos que especifiques, dejando el resto del documento sin cambios. Puedes combinar varios operadores en una sola llamada a update() para modificar mรบltiples campos a la vez, lo que garantiza actualizaciones precisas y evita sobrescribir datos que deseas conservar.
Actualizaciรณn de mรบltiples valores
Para garantizar que varios documentos o documentos en masa se actualicen al mismo tiempo en MongoDB Debes utilizar la opciรณn multi porque, de lo contrario, por defecto solo se modifica un documento a la vez.
El siguiente ejemplo muestra cรณmo actualizar muchos documentos.
En este ejemplo, primero buscaremos el documento que tiene la identificaciรณn del empleado como "1" y cambiaremos el nombre del empleado de "Martin" a "NewMartin".
Paso 1) Emita el comando de actualizaciรณn
Paso 2) Elija la condiciรณn que desea utilizar para decidir quรฉ documento debe actualizarse. En nuestro ejemplo, queremos que se actualice el documento que tiene la identificaciรณn de empleado "1".
Paso 3) Elija quรฉ nombre de campo desea modificar e ingrese su nuevo valor en consecuencia.
db.Employee.update ( { Employeeid : 1 }, { $set : { "EmployeeName" : "NewMartin", "Employeeid" : 22 } } )
Si el comando se ejecuta correctamente y si ejecuta el "encontrar" comando para buscar el documento con ID de empleado como 22, verรก que se mostrarรก la siguiente salida
Salida:
El resultado muestra claramente que un registro coincidรญa con la condiciรณn y, por lo tanto, se modificรณ el valor del campo relevante.
Cรณmo insertar o actualizar un documento en MongoDB
Una operaciรณn upsert es una combinaciรณn de actualizaciรณn e inserciรณn. Cuando la habilitas, MongoDB Actualiza el documento que coincide con la condiciรณn o inserta uno nuevo si no se encuentra ninguna coincidencia. Esto resulta รบtil cuando no se sabe con certeza si un registro ya existe.
Para realizar una operaciรณn de inserciรณn o actualizaciรณn, agregue la opciรณn `upsert` establecida en `true` como tercer argumento de `update()`:
db.Employee.update( {Employeeid: 5}, {$set: {EmployeeName: "Sofia"}}, {upsert: true} )
Esto es lo que sucede:
- Si existe un documento con Employeeid 5, MongoDB Actualiza su campo EmployeeName.
- Si no existe tal documento, MongoDB inserta un nuevo documento con Employeeid 5 y EmployeeName โSofia".
Las operaciones de inserciรณn/actualizaciรณn son รบtiles para contadores, configuraciones y cualquier flujo de trabajo en el que se desee crear un registro en el primer uso y actualizarlo posteriormente. En la actualidad MongoDBEl mismo comportamiento estรก disponible mediante updateOne() y updateMany() al pasar {upsert: true} en las opciones. Tenga cuidado con la condiciรณn, ya que un filtro amplio combinado con upsert puede generar documentos inesperados.
updateOne() vs updateMany() vs replaceOne()
El mรฉtodo update() ahora es un comando heredado. MongoDB Los controladores dividen su comportamiento en tres mรฉtodos mรกs claros. La siguiente tabla los compara:
| Mรฉtodo | ยฟQuรฉ hace? | Documentos afectados |
|---|---|---|
| actualizarUno() | Aplica operadores de actualizaciรณn al primer documento coincidente. | Un |
| actualizarMany() | Aplica operadores de actualizaciรณn a cada documento coincidente. | Muchos |
| reemplazarUno() | Reemplaza todo el primer documento coincidente con uno nuevo. | Un |
Utilice `updateOne()` para un รบnico cambio especรญfico, `updateMany()` en lugar de la antigua opciรณn `multi`, y `replaceOne()` cuando desee reemplazar un documento completo en lugar de editar campos. Estos mรฉtodos devuelven un resultado claro que muestra cuรกntos documentos coincidieron y cuรกntos se modificaron, lo que los hace mรกs seguros y fรกciles de depurar que `update()`.


