MongoDB proporciona diferentes tipos de operadores de expresiones aritméticas que se utilizan en las etapas de canalización de agregación y un operador $subtract es uno de ellos. Este operador se usa para restar dos números y devolver la diferencia en los números o para restar dos fechas y devolver la diferencia en milisegundos, o resta la fecha y el número en milisegundos y devuelve la fecha.
Sintaxis:
{ $subtract: [ <expression1>, <expression2> ] }
Aquí, los argumentos proporcionados deben ser una expresión válida, como números o una fecha, y el segundo argumento se resta del primero . Si está restando un número de una fecha, entonces el primer argumento de este operador es una fecha .
Ejemplos:
En los siguientes ejemplos, estamos trabajando con:
Base de datos: GeeksforGeeks
Colección: Empleado
Documento: cuatro documentos que contienen los datos de los empleados en forma de pares campo-valor.
Usando el operador $subtract resta dos números:
En este ejemplo, vamos a restar el valor del campo firstSalary del valor del campo secondSalary usando el operador $subtract.
db.Employee.aggregate([{$match: {department: "Development"}}, ... {$project: {result: ... {$subtract:["$secondSalary", "$firstSalary"]}}}])
Usando el operador $restar resta dos fechas:
En este ejemplo, vamos a restar dos fechas, es decir, el valor del campo projectStartDate del valor del campo projectEndDate usando un operador $subtract.
db.Employee.aggregate([{$match: {department: "Testing"}}, ... {$project:{diffResult: ... {$subtract:["$projectEndDate", "$projectStartDate"]}}}])
El uso del operador $subtract resta milisegundos de una fecha:
En este ejemplo, vamos a restar 5*24*60*60000 milisegundos (es decir, 5 días) del valor del campo projectEndDate usando un operador $subtract.
db.Employee.aggregate([{$match: {department: "Testing"}}, ... {$project: {newprojectEndDate: ... {$subtract:["$projectEndDate", 5*24*60*60000]}}}])
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