Command Palette

Search for a command to run...

Filtering

Pylo's filter system lets you build complex queries with AND/OR logic and a comprehensive set of operators.

Filter Structure

Filters are passed to list queries via the filter input:

query
1 2 3 4 5 6 7 8 9 10 query { customerList( filter: { query: [{ /* conditions */ }] sortby: [{ /* sort rules */ }] } ) { data { id name } } }

Conditions

Each condition specifies a field, operator, and value:

condition
1 2 3 4 5 6 7 { condition: { field: "name" operator: ilike value: "%john%" } }

Available Operators

String Operators

OperatorDescriptionExample
ilikeContains (case-insensitive)%search%
likeContains (case-sensitive)%search%
notiLikeDoes not contain (case-insensitive)%exclude%
notLikeDoes not contain (case-sensitive)%exclude%
startsWithStarts withprefix
endsWithEnds withsuffix
equalExact matchvalue
notEqualNot equalvalue

Numeric & Date Operators

OperatorDescription
equalEqual to
notEqualNot equal to
greaterThanGreater than
lessThanLess than
greaterThanOrEqualGreater than or equal
lessThanOrEqualLess than or equal

Null & Empty Operators

OperatorDescriptionRequires Value
isNullField is nullNo
isNotNullField is not nullNo
isEmptyField is empty stringNo
isNotEmptyField is not emptyNo

Boolean Operators

OperatorDescriptionRequires Value
isTrueField is trueNo
isFalseField is falseNo

List Operators

OperatorDescriptionUses
inValue in listvalues array
notInValue not in listvalues array

AND Conditions

query
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 query { customerList( filter: { query: [{ and: [ { condition: { field: "status" operator: equal value: "active" } } { condition: { field: "created_at" operator: greaterThan value: "2024-01-01" } } ] }] } ) { data { id name status created_at } } }

OR Conditions

query
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 query { customerList( filter: { query: [{ or: [ { condition: { field: "status" operator: equal value: "active" } } { condition: { field: "status" operator: equal value: "pending" } } ] }] } ) { data { id name status } } }

Filtering Relations

Use dot notation to filter by related fields:

query
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 query { orderList( filter: { query: [{ condition: { field: "customer.name" operator: ilike value: "%acme%" } }] } ) { data { id total customer { data { name } } } } }

Sorting

query
1 2 3 4 5 6 7 8 9 10 11 12 query { customerList( filter: { sortby: [ { field: "status", order: asc } { field: "created_at", order: desc } ] } ) { data { id name status created_at } } }

Sort by related fields using dot notation:

query
1 2 3 4 5 6 7 8 9 10 11 query { orderList( filter: { sortby: [ { field: "customer.name", order: asc } ] } ) { data { id customer { data { name } } } } }