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: