Filter Records - Data Model Repository Reference
This reference provides examples to different filtering mechanisms and scenarios.
Methods that Accept Filters#
Some of the data model repository's methods allow you to pass filters, including:
Method | Filter Parameter |
|---|---|
Accepts a | |
Accepts a | |
Accepts an object as a first parameter to pass filters. | |
Accepts an object as a first parameter to pass filters. | |
Accepts an object as a first parameter to pass filters. |
While the examples in this reference are based on the find method, the same filtering mechanisms apply to the other methods.
Match Exact Value#
If you pass a property with its value, only records whose properties exactly match the value are selected.
In the example above, only posts having the title My Post are retrieved.
Doesn't Match Exact Value#
To find records with a property that doesn't match a value, pass an object with a $ne property. Its value is the value that a record's property shouldn't match.
In the example above, only posts that don't have the title My Post are retrieved.
Match Multiple Values#
To find records with a property matching multiple values, pass an array of those values as the property's value in the filter.
In the example above, only posts having either 50 or 100 views are retrieved.
Don't Match Multiple Values#
To find records with a property that doesn't match one or more values, pass an object with a $nin property. Its value is an array of multiple values that a record's property shouldn't match.
In the example above, only posts that don't have the title My Post are retrieved.
Match Text Like Value
text, id, and enum properties.To perform a like filter on a record's property, set the property's value to an object with a $like property. Its value is the string to use when applying the like filter.
The example above matches all posts whose title starts with My.
Filter by Null or Not Null#
To retrieve records with a property that is null, set the property's value to null.
For example:
In the example above, only posts that have a null publish date are retrieved.
On the other hand, to retrieve records with a property that isn't null, set the property's value to an object with a $ne property.
For example:
In the example above, only posts that have a publish date are retrieved.
Apply Range Filters
number and dateTime properties.To filter a record's property to be within a range, set the property's value to an object with any of the following properties:
$lt: The property's value must be less than the supplied value.$lte: The property's value must be less than or equal to the supplied value.$gt: The property's value must be greater than the supplied value.$gte: The property's value must be greater than or equal the supplied value.
In the example above, only posts whose published_at property is before the current date and time are retrieved.
Example: Retrieve Posts Published Today#
The dateTime property also stores the time. So, when matching for an exact day, you must set a range filter to be between the beginning and end of the day.
In this example, you retrieve the current date twice: once to set its time to 00:00:00, and another to set its time 23:59:59. Then, you retrieve posts whose published_at property is between 00:00:00 and 23:59:59 of today.
Example: Range Filter on Number Property#
In the example above, only posts with views between 50 and 100 are retrieved.
Apply Or Condition#
To use an condition, pass to the filter object the property, whose value is an array of filters.
In the example above, posts whose title is My Post or their published_at date is less than the current date and time are retrieved.
Apply And Condition#
To use an and condition, pass to the filter object the $and property, whose value is an array of filters.
In the example above, only posts whose title is My Post and their published_at date is less than the current date and time are retrieved.
Complex Filters Example#
In the example above, posts are retrieved if they meet either of the following conditions:
- The post has at least
50views and was published after the beginning of the current year. - The post's title contains the word
Featured.
By combining and and or conditions, you can create complex filters to retrieve records that meet specific criteria.
Supported Filter Operators List#
The following operators are supported by the data model repository filtering mechanism:
Operator | Description |
|---|---|
Comparison Operators | |
Matches values that are equal to a specified value. | |
Matches values that are not equal to a specified value. | |
Matches any of the values specified in an array. | |
Matches none of the values specified in an array. | |
Matches values containing a specified substring. | |
Matches values that are less than a specified value. | |
Matches values that are less than or equal to a specified value. | |
Matches values that are greater than a specified value. | |
Matches values that are greater than or equal to a specified value. | |
Matches values that match a specified regular expression. | |
Matches values containing a specified substring, case-insensitive. | |
Performs a full-text search on a text property. | |
Matches values that have overlapping elements with the specified array. | |
Performs an comparison. Learn more in the PostgreSQL documentation. | |
Performs an comparison. Learn more in the PostgreSQL documentation. | |
Logical Operators | |
Joins two or more conditions with a logical AND. | |
Joins two or more conditions with a logical OR. | |
Inverts the logic of a condition. For example, matches any value that is not equal to the specified value. | |