FilterDsl
Builds a FilterExpression: each call adds one node, and the block's nodes are combined with AND (one node alone is the filter itself). A field is named by its path, as a string ("state.status") or as a QueryField, such as a generated <State>Properties constant; every field operator takes either.
Values are the JSON values the wire carries (a string, a number, a boolean) or a runtime value, such as an enum, which the backend compares as the JSON it writes as.
eq nullisIS_NULLandne nullisIS_NOT_NULL.Combinators: and, or and nor take a block of operands; not negates its block, written on the wire as a
NORof one operand, since the protocol has noNOT.Scopes: path prefixes the relative fields of its block with a path; elementMatch matches the elements of a collection, its block naming fields relative to an element. A field under the element's own path, such as a generated
STATE__ITEMS__PRODUCT_IDinsideSTATE__ITEMS.elementMatch { }, is read relative to it.
Functions
BEFORE_TODAY: before time of today.
EARLIER_DAYS: before the last days days.
ELEMENT_MATCH: an element of this collection matches block, whose fields are relative to the element.
ELEMENT_MATCH on this collection field, as String.elementMatch does.
Adds a prebuilt filter expression unchanged at the current query context root.
EXPRESSION: compares the computed expression of each record with value.
RECENT_DAYS: within the last days days, today included.