What is this?
Admin note: This guide covers the basic “building blocks” of searching for data in your e-shop. It explains how to find items based on names, prices, or simple status flags (like “active” or “visible”).
Who is this for? Administrators should read this to learn the most common ways to search for products or orders. It’s the best place to start if you want to build your own filters in the application interface.
Key benefits for the e-shop:
- Easy Product Finding: Quickly locate products by exact name, price range, or category.
- Status Monitoring: Find all your “hidden” or “inactive” products to ensure your storefront is clean.
- Smart Text Search: Use patterns to find items even if you don’t know the exact name (e.g., “all items ending in ‘Pro’”).
- Combined Rules: Use “and/or” logic to create specific lists, like “all active products priced under $50.”
Basic Filtering
Our Filter System provides a powerful, human-readable language for filtering your data. You can use the same syntax in the application UI, the query system, and REST APIs.
Overview
A filter condition consists of a field name, an operator, and a value. You can combine multiple conditions using logical operators like and or or.
[navigate:where-advanced.md|Advanced Filters|database] [navigate:where-functions.md|Functions & Aggregation|zap]
Simple Filter Examples
Equality and Numeric Comparisons
Filter by exact values or numeric ranges. Use these to find products with specific names or prices.
Simple Equality
name = "MacBook Pro"
[badge:Basic|secondary|right]
Double Equals
Double equals automatically converts to single equals for convenience.
name == "MacBook Pro"
[badge:Basic|secondary|right]
Not Equals
Multiple ways to express that a field should not match a value.
name != "iPhone" or code <> "X100" or ean ne "123"
[badge:Basic|secondary|right]
Numeric Comparisons
Find products within a price range.
priceWithVat > 500 and priceWithVat <= 1500
[badge:Numeric|secondary|right]
Boolean Checks
Check for boolean field values like blocked or emailVerified.
blocked is false and emailVerified is true
[badge:Boolean|secondary|right]
Null and Empty Checks
Verify if fields have values or are empty.
Null and Empty Validations
ean is null and name is not empty
[badge:Null|secondary|right]
Empty vs Null Distinction
Understanding empty (null or “”) vs null.
description is empty or internalNote is not null
[badge:Null|secondary|right]
Pattern Matching
Use patterns to find text that starts, ends, or contains specific characters.
Case-Insensitive Patterns
name like "iphone" and code ends "-XL"
[badge:Pattern|secondary|right]
Case-Insensitive Matching (iLike)
name ilike "iPhone" or shortDescription begins "TEST"
[badge:Pattern|secondary|right]
Negated Pattern Matching
name not like "temp" and code not ends ".test"
[badge:Pattern|secondary|right]
Set Membership and Ranges
Check if a value belongs to a list or a range.
Set Membership
code in ("A1", "A2", "A3")
[badge:Set|secondary|right]
Between and Range
priceWithVat between 100 and 500
[badge:Range|secondary|right]
Logical Operators
Combine multiple conditions for complex filtering.
and
Both conditions must be true.
name = "iPhone" and priceWithVat > 800
[badge:Logic|outline|right]
or
At least one condition must be true.
name = "iPhone" or name = "iPad"
[badge:Logic|outline|right]
not
Negates the condition.
not (name = "iPhone")
[badge:Logic|outline|right]
Operators Reference
| Operator | Aliases | Description | Example |
|---|---|---|---|
| = | ==, eq, ~eq~ |
Equal | name = “iPhone” |
| != | <>, ne, ~ne~ |
Not equal | name != “iPhone” |
| > | gt, ~gt~ |
Greater than | weight > 30 |
| >= | gte, ~gte~ |
Greater than or equal | weight >= 18 |
| < | lt, ~lt~ |
Less than | weight < 65 |
| <= | lte, ~lte~ |
Less than or equal | weight <= 65 |
| is null | - | Field is null | ean is null |
| is not null | - | Field is not null | ean is not null |
| is empty | - | Field is null or empty string | description is empty |
| is not empty | - | Field is not null and not empty | name is not empty |
| is true | - | Field is true | isAccounted is true |
| is false | - | Field is false | isAccounted is false |
| in | - | Value in set | code in (“A1”, “A2”, “A3”) |
| not in | - | Value not in set | code not in (“A1”, “A2”) |
| between … and … | - | Value in range | weight between 18 and 65 |
| not between … and … | - | Value not in range | weight not between 18 and 65 |
| like | - | Case-insensitive contains | name like “test” |
| begins | - | Starts with | name begins “iPhone” |
| ends | - | Ends with | name ends “Pro” |
Using Filters in the Application
The same filter syntax works throughout the entire platform.
Application UI
- Double-click any filter text to edit the raw syntax.
- Use AI Chat to help design complex filters.
- Visual filter builder converts to this syntax.
API Integration
- Query System: Use in the
whereparameter. - REST API: Use as a
filterquery parameter. - Changesets: Correctly handles historical data and point-in-time queries.