$isNumber
The `$isNumber` operator returns true if the input expression is a numerical type. The `$isNumber` operator returns false for an expression of any other type.
Syntax
{
$isNumber: <expression>
}
Parameters
expression
objectrequiredThe specified value to check for a number.
Examples
Sample Data
{
"_id": "0fcc0bf0-ed18-4ab8-b558-9848e18058f4",
"name": "First Up Consultants | Beverage Shop",
"location": { "lat": -89.2384 },
"sales": { "totalSales": 75670 }
}
Check if a Double value is a number
Verify if the latitude field is numeric.
This query validates that a double value is a number.
Query:
db.stores.aggregate([{
$match: { _id: "b0107631-9370-4acd-aafa-8ac3511e623d" }
}, {
$project: {
originalLatitude: "$location.lat",
latitudeIsNumber: { $isNumber: "$location.lat" }
}
}])
Output:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"originalLatitude": 72.8377,
"latitudeIsNumber": true
}
]
Check if a string is a number
Verify if the _id field is numeric.
This query validates that a string value is not a number.
Query:
db.stores.aggregate([{
$match: { _id: "b0107631-9370-4acd-aafa-8ac3511e623d" }
}, {
$project: {
idIsNumber: { $isNumber: "$_id" }
}
}])
Output:
[
{
"_id": "b0107631-9370-4acd-aafa-8ac3511e623d",
"idIsNumber": false
}
]