Skip to main content

Comparison operators

This page details the available comparison operators when writing rules as part of the search route.

= (Equal)

The = operator checks exact matches of the specified value:

{
"operator": "=",
"property": "myProperty",
"value": "myExactValue"
}

This operator can also be used to check the value of boolean properties:

{
"operator": "=",
"property": "myBooleanProperty",
"value": true
}

!= (Not Equal)

The != operator checks exact matches of the specified value and returns all results that fail to satisfy the check:

{
"operator": "!=",
"property": "myProperty",
"value": "myExactValue"
}

This operator can also be used to check the value of boolean properties:

{
"operator": "!=",
"property": "myBooleanProperty",
"value": false
}

> (Greater Than)

The > operator checks values larger than the specified value:

{
"operator": ">",
"property": "myNumericProperty",
"value": 7
}

>= (Greater Than or Equal)

The >= operator checks values larger than or equal to the specified value:

{
"operator": ">=",
"property": "myNumericProperty",
"value": 7
}

< (Less Than)

The < operator checks values less than the specified value:

{
"operator": "<",
"property": "myNumericProperty",
"value": 7
}

<= (Less Than or Equal)

The <= operator checks values less than or equal to the specified value:

{
"operator": "<=",
"property": "myNumericProperty",
"value": 7
}

isEmpty

The isEmpty operator checks if the value of the specified property is null:

{
"operator": "isEmpty",
"property": "myProperty"
}

isNotEmpty

The isNotEmpty operator checks if the value of the specified property is not null:

{
"operator": "isNotEmpty",
"property": "myProperty"
}

propertySchema

The propertySchema filter can be used with any standard operator. It allows you to filter entities based on a properties matching a specific type (for example, find all string properties with a given value):

{
"propertySchema": {
"type": "string"
},
"operator": "=",
"value": "My value"
}
tip
  • The propertySchema can be used with any Port property;
  • The propertySchema replaces the property filter when performing property schema search.

between

The between operator checks datetime values and returns entities whose relevant datetime property matches the given range:

{
"operator": "between",
"property": "$createdAt",
"value": {
"preset": "lastWeek"
}
}

Available Presets:

  • tomorrow
  • today
  • yesterday
  • lastWeek
  • last2Weeks
  • lastMonth
  • last3Months
  • last6Months
  • last12Months

The between operator also supports standard date ranges:

{
"combinator": "and",
"rules": [
{
"operator": "between",
"property": "$createdAt",
"value": {
"from": "2022-07-26T16:38:06.839Z",
"to": "2022-07-29T17:00:28.006Z"
}
}
]
}

notBetween

The notBetween operator checks datetime values and returns entities whose relevant datetime property does not match the given range:

{
"operator": "notBetween",
"property": "$createdAt",
"value": {
"preset": "lastWeek"
}
}

contains

The contains operator checks if the specified substring exists in the specified property:

{
"operator": "contains",
"property": "myStringProperty",
"value": "mySubString"
}

doesNotContains

The contains operator checks if the specified value does not exists in the specified property:

{
"operator": "doesNotContains",
"property": "myStringProperty",
"value": "otherValue"
}

containsAny

The containsAny operator checks if any of the specified strings exist in the target array:

{
"operator": "containsAny",
"property": "myArrayProperty",
"value": ["Value1", "Value2", ...]
}

beginsWith

The beginsWith operator checks if the specified property starts with the specified value**

{
"operator": "beginsWith",
"property": "myStringProperty",
"value": "myString"
}

doesNotBeginsWith

The doesNotBeginsWith operator checks if the specified property does not start with the specified value

{
"operator": "doesNotBeginsWith",
"property": "myStringProperty",
"value": "otherValue"
}

endsWith

The endsWith operator checks if the specified property ends with the specified value

{
"operator": "endsWith",
"property": "myStringProperty",
"value": "myString"
}

doesNotEndsWith

The doesNotEndsWith operator checks if the specified property does not end with the specified value

{
"operator": "doesNotEndsWith",
"property": "myStringProperty",
"value": "otherValue"
}

in

The in operator checks if a string property is equal to one or more specified string values:

{
"property": "myStringProperty",
"operator": "in",
"value": ["Value1", "Value2"]
}