Bound uses ConstantsTrait
Declaration keys of a **bound** definition (`AQL::BOUNDS`), consumed by {@see BoundsQueryTrait}.
A bound entry is either a bare field name or a keyed definition holding these
options. PROPERTY targets the aggregated path; the others exclude values
from the MIN / MAX / count aggregate (a common data-quality need — e.g.
a 0 that encodes "not filled" must not drag the observed minimum to zero).
An excluded value is mapped to null, which MIN / MAX already ignore, so
the exclusion is per field — a document dropped from one field's extent
still counts for the others. The exclusion options combine with a logical AND.
The permission gate is not declared here: like facets, a bound inherits or
carries its Field::REQUIRES on the ield enum.
Tags
Table of Contents
Constants
- IGNORE : string = 'ignore'
- Sentinel value(s) to exclude from the aggregate — a scalar (`0`) or a list (`[ 0, 5, 15 ]`). Emits `NOT IN [ … ]`.
- MAX : string = 'max'
- The upper bound of the **accepted domain**: values above it are excluded (`<value> <= @max`). Note: this is the accepted *input* ceiling, distinct from the observed `max` returned in the output.
- MIN : string = 'min'
- The lower bound of the **accepted domain**: values below it are excluded (`<value> >= @min`). Note: this is the accepted *input* floor, distinct from the observed `min` returned in the output.
- POSITIVE : string = 'positive'
- When `true`, only strictly positive values enter the aggregate (`<value> > 0`) — the shorthand for the frequent "0 means not filled" case.
- PROPERTY : string = 'property'
- The document property targeted by the bound (alias of the bound key, `[*]` array-expansion path accepted).
- REQUIRES : string = 'requires'
- The permission subject(s) required to bounds the result — a string or a list (OR semantics), mirroring {@see Field::REQUIRES} for projections.
Constants
IGNORE
Sentinel value(s) to exclude from the aggregate — a scalar (`0`) or a list (`[ 0, 5, 15 ]`). Emits `NOT IN [ … ]`.
public
string
IGNORE
= 'ignore'
MAX
The upper bound of the **accepted domain**: values above it are excluded (`<value> <= @max`). Note: this is the accepted *input* ceiling, distinct from the observed `max` returned in the output.
public
string
MAX
= 'max'
MIN
The lower bound of the **accepted domain**: values below it are excluded (`<value> >= @min`). Note: this is the accepted *input* floor, distinct from the observed `min` returned in the output.
public
string
MIN
= 'min'
POSITIVE
When `true`, only strictly positive values enter the aggregate (`<value> > 0`) — the shorthand for the frequent "0 means not filled" case.
public
string
POSITIVE
= 'positive'
PROPERTY
The document property targeted by the bound (alias of the bound key, `[*]` array-expansion path accepted).
public
string
PROPERTY
= 'property'
REQUIRES
The permission subject(s) required to bounds the result — a string or a list (OR semantics), mirroring {@see Field::REQUIRES} for projections.
public
string
REQUIRES
= 'requires'