- Reference >
- Operators >
- Aggregation Pipeline Operators >
- $toBool (aggregation)
$toBool (aggregation)¶
On this page
Definition¶
Behavior¶
The following table lists the input types that can be converted to a boolean:
| Input Type | Behavior |
|---|---|
| Boolean | No-op. Returns the boolean value. |
| Double | Returns true if not zero.
Return false if zero.
|
| Decimal | Returns true if not zero.
Return false if zero.
|
| Integer | Returns true if not zero.
Return false if zero.
|
| Long | Returns true if not zero.
Return false if zero.
|
| ObjectId | Returns true.
|
| String | Returns true.
|
| Date | Returns true.
|
The following table lists some conversion to boolean examples:
| Example | Results |
|---|---|
{$toBool: false} |
false |
{$toBool: 1.99999} |
true |
{$toBool: NumberDecimal("5")} |
true |
{$toBool: NumberDecimal("0")} |
false |
{$toBool: 100} |
true |
{$toBool: ISODate("2018-03-26T04:38:28.044Z")} |
true |
{$toBool: "false"} |
true |
{$toBool: ""} |
true |
{$toBool: null} |
null |
Example¶
Create a collection orders with the following documents:
The following aggregation operation on the orders collection
converts the shipped to a boolean value before finding the
unshipped orders:
The operation returns the following document:
Note
If the conversion operation encounters an error, the aggregation
operation stops and throws an error. To override this behavior, use
$convert instead.