Type identifier:
list:filterCategory: List Operations
Filters, sorts, and paginates an array of items. Apply filter conditions to select matching items, sort by multiple fields, remove duplicates, and limit results.
Handle | Data Type | Required | Description |
|---|---|---|---|
|
| Yes | The array to filter |
| Varies | Varies | Dynamic handles for filter variables |
sourcearrayNotes:
Input handles generated from variables configuration:
Handle | Data Type | Description |
|---|---|---|
|
| Filtered results (single or array) |
filteredfirstOnly) or Array (if multiple)Notes:
null if firstOnly and emptyProperty | Type | Required | Default | Description |
|---|---|---|---|---|
|
| Yes |
| Display label for the node |
|
| No |
| Filter conditions |
|
| No |
| Sorting configuration |
|
| No |
| Return single item vs array |
|
| No |
| Maximum items to return |
|
| No |
| Skip N items |
|
| No |
| Remove duplicate items |
|
| No |
| Fields to determine uniqueness |
|
| No |
| Variable definitions for filtering |
filtereq, ieq, ne, ine, gt, gte, lt, lte, contains, in, nin, isNull, isNotNullNotes:
ieq and ine perform locale-independent case-insensitive equality and are available for string properties onlycontains remains a case-sensitive substring operationsort{ id, path, direction }Structure:
[
{ "id": "sort1", "path": ["name"], "direction": "desc" },
{ "id": "sort2", "path": ["createdAt"], "direction": "asc" }
]distinctBystring[][] (array of path arrays)Notes:
distinct is true but distinctBy is empty, uses full item equalitydistinctBy has paths, uniqueness is determined by those fields onlyEach item is checked against the filter conditions:
Scenario | Behaviour |
|---|---|
Source is not array | Fails with |
Empty source array | Returns empty array (or |
No matching items | Returns empty array (or |
{
"type": "list:filter",
"data": {
"label": "Active Users Only",
"filter": {
"path": "active",
"type": "property",
"value": { "type": "literal", "value": true },
"operator": "eq"
}
}
}{
"type": "list:filter",
"data": {
"label": "Top 10 Recent Orders",
"filter": {
"path": "status",
"type": "property",
"value": { "type": "literal", "value": "completed" },
"operator": "eq"
},
"sort": [{ "id": "date", "path": ["createdAt"], "direction": "desc" }],
"limit": 10
}
}{
"type": "list:filter",
"data": {
"label": "Unique Categories",
"distinct": true,
"distinctBy": [["category"]],
"sort": [{ "id": "name", "path": ["category"], "direction": "asc" }]
}
}{
"type": "list:filter",
"data": {
"label": "Find User by Email",
"variables": [{ "id": "email", "type": { "type": "string", "required": true } }],
"filter": {
"path": "email",
"type": "property",
"value": { "type": "contextValue", "valueId": "email" },
"operator": "eq"
},
"firstOnly": true
}
}