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.

  • ✏️ Método update(): El comando update() modifica los campos de los documentos que cumplen una condición determinada.
  • 🎯 Condición del partido: El primer argumento selecciona qué documentos actualizar, como por ejemplo {Employeeid:1}.
  • 🔧 $ conjunto Operacolina: El operador $set asigna un nuevo valor a un campo sin reemplazar todo el documento.
  • 📚 Actualizar muchos: La opción multi, o updateMany(), modifica todos los documentos que coinciden en lugar de solo uno.
  • ➕ Actualizar/Insertar: La opción upsert inserta un nuevo documento cuando ningún documento existente coincide con la condición.
  • 🔄 Métodos modernos: updateOne(), updateMany() y replaceOne() son las funciones que actualmente reemplazan a la función update(), que está obsoleta.

MongoDB Actualizar() Documento

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:

Actualizaciones de documentos básicos

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:

Actualización de múltiples valores

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

Preguntas Frecuentes

Sin un operador de actualización como $set, MongoDB Reemplaza todo el documento coincidente con el objeto que proporcione, eliminando cualquier campo que no esté incluido. Siempre use $set para cambiar campos específicos mientras mantieneping el resto intacto.

Sí. Si el campo nombrado en $set no está presente en el documento coincidente, MongoDB Lo agrega con el valor dado. Esto hace que $set sea útil tanto para actualizar campos existentes como para agregar nuevos.

Utilice findOneAndUpdate() con la opción returnDocument establecida en 'after'. Aplica el cambio y devuelve el documento modificado en una sola operación atómica, lo cual resulta útil cuando se necesitan los nuevos valores de inmediato.

La IA puede convertir una solicitud simple en un comando de actualización o actualización múltiple con la condición y el operador adecuados, como $set o $inc, y explicar cada parte para que los principiantes eviten errores.

Sí. La IA puede detectar una actualización que omite $set y que reemplazaría documentos completos, advertir cuando un filtro coincide con todo y sugerir pruebas en una copia antes de ejecutarla en producción.

Resumir este post con: