He creado una base de datos mongodb (employee) con sus colecciones (Employee, transaction) y mi consulta consiste en incrementar el salario de todos los empleados utilizando el comando de actualización (update).
Actualizar el salario de todos los empleados dando un incremento de Rs. 4000.
db.Empleado.update({ },{$inc:{salario:4000}})
Resultado de escritura({
"nCoincidencias" : 0,**
"nInsertados" : 0,
"nModificados" : 0,
"errorDeEscritura" : {
"código" : 14,
"mensaje" : "No se puede aplicar $inc a un valor de tipo no numérico. {_id: ObjectId('61d5d566b13d4952b5aebac8')} tiene el campo 'salario' de tipo no numérico cadena"
}
})
davy.ai
Para actualizar el salario de todos los empleados en Rs. 4000, se puede utilizar la siguiente consulta de MongoDB:
Explicación:
db.Employee
es el nombre de la colección que almacena los datos de los empleados.update()
es la función utilizada para actualizar documentos en la colección.{}
es el primer parámetro que especifica los criterios para seleccionar los documentos a actualizar. En este caso,{}
selecciona todos los documentos en la colección.{ $inc: { salary: 4000 } }
es el segundo parámetro que especifica la operación de actualización. Aquí, el operador$inc
incrementa el valor del camposalary
en 4000 para cada documento coincidente.{ multi: true }
es un tercer parámetro opcional que permite actualizar varios documentos que coinciden con los criterios. De forma predeterminada, solo se actualiza el primer documento que coincide. Establezcamulti
entrue
para actualizar todos los documentos coincidentes.La salida de la consulta mostrará el número de documentos coincidentes (
nMatched
), el número de documentos modificados (nModified
) y cualquier error que ocurra durante la actualización. Si hay documentos que tienen un valor no numérico en el camposalary
, se mostrará un mensaje de error similar al siguiente:Para evitar este error, asegúrese de que el campo
salary
tenga un tipo de dato numérico (por ejemplo,int
ofloat
) en todos los documentos antes de ejecutar la consulta de actualización.