$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

expressionobjectrequired

The 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
  }
]

Related