Guide/Filters and operators
Filters and operators
Simple filters
Section titled “Simple filters”addFilter() takes a field and one or more values.
qb.addFilter('status', 'published');qb.addFilter('id', 1, 2, 3); // multiple valuesqb.deleteFilters('status');How that renders is the driver’s business:
Strapi filters[status][$eq]=publishedPostgREST status=eq.publishedOData $filter=status eq 'published'Spatie filter[status]=publishedExplicit operators
Section titled “Explicit operators”addFilterOperator() takes a FilterOperatorEnum.
import { FilterOperatorEnum } from '@qubeejs/core';
qb.addFilterOperator('price', FilterOperatorEnum.GTE, 10);qb.addFilterOperator('price', FilterOperatorEnum.BTW, 10, 100);qb.addFilterOperator('deletedAt', FilterOperatorEnum.NULL, true);Available operators
Section titled “Available operators”| Operator | Meaning | Notes |
|---|---|---|
EQ |
equals | |
NOT |
not equal | |
GT / GTE |
greater than / or equal | |
LT / LTE |
less than / or equal | |
IN |
matches any value | takes several values |
BTW |
between | requires exactly two values |
NULL |
is / is not null | requires exactly one boolean |
CONTAINS |
substring | |
ILIKE |
case-insensitive match | |
SW |
starts with | |
FTS / PHFTS / PLFTS / WFTS |
full-text search variants | PostgREST |
Arity is enforced
Section titled “Arity is enforced”BTW and NULL have shape rules the library checks, so misuse fails loudly rather than producing
an invalid request:
qb.addFilterOperator('price', FilterOperatorEnum.BTW, 10);// InvalidFilterOperatorValueError: BTW requires exactly 2 values (min, max)Operator support varies
Section titled “Operator support varies”Thirteen of the eighteen drivers support explicit operators. The rest accept simple filters only:
qb.addFilterOperator('price', FilterOperatorEnum.GTE, 10);// UnsupportedFilterOperatorError: The 'json-api' driver does not support filter operators.Check the capability matrix before reaching for one.
