MongoDB – Operadores de actualización de campo

MongoDB proporciona diferentes tipos de operadores de actualización de campos para actualizar los valores de los campos de los documentos que coinciden con la condición especificada. La siguiente tabla contiene los operadores de actualización de campo:

Operador Descripción
$fechaactual Este operador se utiliza para establecer el valor de un campo en la fecha actual, ya sea como fecha o marca de tiempo.
$inc Este operador se utiliza para incrementar el valor del campo en la cantidad especificada.
$min Este operador se usa solo para actualizar el campo si el valor especificado es menor que el valor del campo existente
$máx. Este operador se usa solo para actualizar el campo si el valor especificado es mayor que el valor del campo existente.
$mul Este operador se utiliza para multiplicar el valor del campo por la cantidad especificada.
$renombrar Este operador se utiliza para cambiar el nombre de un campo.
$setOnInsert Este operador se utiliza para establecer el valor de un campo si una actualización da como resultado una inserción de un documento. No tiene efecto sobre las operaciones de actualización que modifican documentos existentes.

En los siguientes ejemplos, estamos trabajando con:

Base de datos:
Colección GeeksforGeeks : Documento del empleado
: dos documentos que contienen los detalles de los empleados en forma de pares de campo-valor.

Actualizar el valor del campo de fecha usando el $currentDate operador:

En el ejemplo, estamos actualizando el valor del campo Fecha de incorporación del documento de un empleado cuyo nombre es Om.

db.Employee.updateOne({"name.first": "Om"}, 
                      {$currentDate: {joiningDate: true}})

Incrementa el valor del campo usando el $inc operador:

En este ejemplo, estamos actualizando el campo de salario del documento de un empleado cuyo nombre es Sumit.

db.Employee.update({"name.first": "Sumit"}, 
                   {$inc: {"personalDetails.salary": 3000}})

Comparando valores (o números) usando $maxel operador:

En este ejemplo, estamos comparando valores (o números) de los campos de salario con el valor especificado, es decir, 40000. Aquí, el valor especificado es mayor que el valor actual. Entonces, $maxel operador actualiza el valor del campo de salario con la ayuda del método update() a 40000.

db.Employee.update({"name.first": "Sumit"}, 
                   {$max: {"personalDetails.salary": 40000}})

Comparando valores (o números) usando $min el operador:

En este ejemplo, estamos comparando valores (o números) de los campos de salario con el valor especificado, es decir, 5000. Aquí, el valor especificado es menor que el valor actual. Asi que. $minEl operador actualiza el valor del campo de salario con la ayuda del método update() a 5000.

db.Employee.update({"name.first": "Sumit"}, 
                   {$min: {"personalDetails.salary": 5000}})

Multiplicando el valor de un campo usando el $muloperador:

En este ejemplo, estamos multiplicando el valor del campo de salario por 2 en el documento que coincide con la condición especificada, es decir, nombre = Sumit.

db.Employee.update({"name.first": "Sumit"}, 
                   {$mul: {"personalDetails.salary": 2}})

Cambiar el nombre de un campo usando el $rename operador:

En este ejemplo, estamos cambiando el nombre del campo experienciaAño a experiencia en el documento del empleado cuyo nombre es Om.

db.Employee.update({"name.first": "Om"}, 
                   {$rename: {"department": "unit"}})

Insertar nuevos campos en nuevos documentos usando $setOnInsert:

En este ejemplo, estamos creando un nuevo documento en la colección de empleados con la ayuda del método update() al establecer el valor del campo upsert en verdadero y usar el operador $setOneInsert para asignar los valores a los campos de departamento y salario en el documento.

db.Example.update({name: {first: "Mona", last: "Singh"}, 
                    personalDetails: {age: 24, contactInfo: 4578934201}}, 
                  {$setOnInsert: {department: "HR", salary: 30000}},
                  {upsert: true})

Publicación traducida automáticamente

Artículo escrito por ankita_saini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *