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()`.



