$abs (aggregation)
Definition
New in version 3.2.
Returns the absolute value of a number.
$abs
has the following syntax:
- { $abs: <number> }
The <number>
expression can be any valid expression as long as it resolves to a number. Formore information on expressions, see Expressions.
Behavior
If the argument resolves to a value of null
or refers to a field that ismissing, $abs
returns null
. If the argument resolves toNaN
, $abs
returns NaN
.
Example | Results |
---|---|
{ $abs: -1 } | 1 |
{ $abs: 1 } | 1 |
{ $abs: null } | null |
Example
A collection ratings
contains the following documents:
- { _id: 1, start: 5, end: 8 }
- { _id: 2, start: 4, end: 4 }
- { _id: 3, start: 9, end: 7 }
- { _id: 4, start: 6, end: 7 }
The following example calculates the magnitude of difference betweenthe start
and end
ratings:
- db.ratings.aggregate([
- {
- $project: { delta: { $abs: { $subtract: [ "$start", "$end" ] } } }
- }
- ])
The operation returns the following results:
- { "_id" : 1, "delta" : 3 }
- { "_id" : 2, "delta" : 0 }
- { "_id" : 3, "delta" : 2 }
- { "_id" : 4, "delta" : 1 }