Arithmetic Operators
Arithmetic operators perform mathematical calculations on label values in a query to help filter records. For instance, you can use arithmetic operators to filter records where deviation of two labels is greater than 10:
{
"$gt": [
{
"$abs": [{ "&score": { "$sub": "&mean_score" } }]
},
10
]
}
The following arithmetic operators are supported:
Operator | Description |
---|---|
$add | Adds the value of the label to the operand. |
$sub | Subtracts the value of the label from the operand. |
$mult | Multiplies the value of the label by the operand. |
$div | Divides the value of the label by the operand. |
$div_num | Divides the value of the label by the operand and returns the result as an integer. |
$rem | Returns the remainder of the division of the value of the label by the operand. |
$abs | Returns the absolute value of the label. |
$add
The $add
operator is used to add the values of multiple operands.
Syntax
{
"$add": [ <expression_1>, <expression_2>, ... ]
}
Behavior
The operator adds the values of the expressions and returns the result. It casts the result to the type of the most precise operand according to the default casting rules.
Additional rules:
- Boolean operands are cast to integers before the operation.
- If the list of operands is empty, the operator returns 0.
- If the operands are strings, they are concatenated.
Examples
Object notation:
{
"&label_name": { "$add": 10 }
}
Array notation:
{
"$add": [true, 10, 30.0]
}
$sub
The $sub
operator is used to subtract the values of the operands.
Syntax
{
"$sub": [ <expression_1>, <expression_2> ]
}
Behavior
The operator subtracts the value of the second expression from the value of the first expression and returns the result. It casts the result to the type of the most precise operand according to the default casting rules.
Additional rules: * Boolean operands are cast to integers before the operation.
Examples
Object notation:
{
"&label_name": { "$sub": 10 }
}
Array notation:
{
"$sub": [100, "&label_name"]
}
$mult
The $mult
operator is used to multiply the values of the operands.
Syntax
{
"$mult": [ <expression_1>, <expression_2> ]
}
Behavior
The operator multiplies the values of the expressions and returns the result.
Additional rules:
- Boolean operands are cast to integers before the operation.
- If the list of operands is empty, the operator returns 1.
Examples
Object notation:
{
"&label_name": { "$mult": 10 }
}
Array notation:
{
"$mult": [true, 10, 30.0]
}
$div
The $div
operator is used to divide the value of the first expression by the value of the second expression.
Syntax
{
"$div": [ <expression_1>, <expression_2> ]
}
Behavior
The operator divides the value of the first expression by the value of the second expression and returns the result as a floating-point number.
Additional rules:
- All operands are cast to floats before the operation.
- If the second operand is 0, the operator returns an error.
Examples
Object notation:
{
"&label_name": { "$div": 10 }
}
Array notation:
{
"$div": [100, "&label_name"]
}
$div_num
The $div_num
operator is used to divide the value of the first expression by the value of the second expression and return the result as an integer.
Syntax
{
"$div_num": [ <expression_1>, <expression_2> ]
}
Behavior
The operator divides the value of the first expression by the value of the second expression and returns the result as an integer.
Additional rules:
- All operands are cast to integers before the operation.
- If the second operand is 0, the operator returns an error.
Examples
Object notation:
{
"&label_name": { "$div_num": 10 }
}
Array notation:
{
"$div_num": [100, "&label_name"]
}
$rem
The $rem
operator is used to return the remainder of the division of the value of the first expression by the value of the second expression.
Syntax
{
"$rem": [ <expression_1>, <expression_2> ]
}
Behavior
The operator returns the remainder of the division of the value of the first expression by the value of the second expression. It casts the result to the type of the most precise operand according to the default casting rules.
Additional rules:
- Boolean operands are cast to integers before the operation.
- The remainder can be negative. * If the second operand is 0, the operator returns an error.
Examples
Object notation:
{
"&label_name": { "$rem": 10 }
}
Array notation:
{
"$rem": [100, "&label_name"]
}
$abs
The $abs
operator is used to return the absolute value of the expression.
Syntax
{
"$abs": [<expression>]
}
Behavior
The operator returns the absolute value of the expression.
Additional rules:
- Boolean operands are cast to integers before the operation.
Examples
Array notation:
{
"$abs": ["&label_name"]
}