Filter und Operatoren
Jede Tabelle akzeptiert ein Argument where zur Einschränkung der
Ergebnismenge. Ein Filterausdruck ist ein verschachteltes Objekt aus
Feldnamen, Vergleichsoperatoren und Werten. Mehrere Feldfilter werden
implizit mit AND verknüpft.
Aufbau
where: {
station: { no: { _eq: "2009" } }
timestamp: { _gte: "2026-01-01T00:00:00Z", _lt: "2026-02-01T00:00:00Z" }
}
Der Ausdruck wird als logisches UND aller enthaltenen Bedingungen
ausgewertet.
Vergleichsoperatoren
| Operator | Bedeutung | Werttyp |
|---|---|---|
_eq | gleich | einzelner Wert |
_neq | ungleich | einzelner Wert |
_in | enthalten in | Liste |
_nin | nicht enthalten in | Liste |
_gt | grösser als | einzelner Wert |
_gte | grösser oder gleich | einzelner Wert |
_lt | kleiner als | einzelner Wert |
_lte | kleiner oder gleich | einzelner Wert |
_between | im Intervall [start, end) | Liste mit zwei Elementen |
_is_null | ist null (true) oder ist nicht null (false) | Boolean |
_startswith | beginnt mit | Zeichenkette |
Beispiele:
where: {
parameterName: { _in: ["Q", "W", "WT"] }
value: { _gte: 0 }
}
where: {
timestamp: { _between: ["2026-01-01T00:00:00Z", "2026-02-01T00:00:00Z"] }
}
Logische Kombinatoren
Für komplexere Bedingungen stehen die Kombinatoren _and, _or und
_not zur Verfügung.
where: {
_or: [
{ station: { no: { _eq: "2009" } } }
{ station: { no: { _eq: "2018" } } }
]
timestamp: { _gte: "2026-01-01T00:00:00Z" }
}
where: {
_not: { parameterName: { _eq: "Q" } }
timestamp: { _gte: "2026-01-01T00:00:00Z" }
}
Die maximale Verschachtelungstiefe von _and, _or und _not beträgt
fünf Ebenen. Tiefere Verschachtelungen werden mit folgender Meldung
abgelehnt:
Filter nesting depth exceeds maximum of 5 levels
Filter auf verschachtelten Objekten
Felder eines verschachtelten Objekts werden über dieselbe Objektstruktur referenziert, in der sie auch in der Abfrage erscheinen. So wird etwa die Stationsnummer der eingebetteten Station gefiltert:
where: { station: { no: { _eq: "2009" } } }
Datentypen
| Typ | Schreibweise im Filter |
|---|---|
String | doppelte Anführungszeichen, z. B. "Aufgebaut" |
Int, Float | numerisch ohne Anführungszeichen |
AWSDateTime | ISO-8601 in UTC, z. B. "2026-01-01T00:00:00Z" |
| Liste | […, …] |
null-Prüfung | { _is_null: true } bzw. { _is_null: false } |
Pflichtfilter
Einzelne Tabellen verlangen mindestens einen Filter auf einem festgelegten Feld, um Vollscans zu vermeiden. Welche Felder pflicht sind, ist auf der jeweiligen Datensatz-Seite vermerkt.
Fehlt ein Pflichtfilter, antwortet die Schnittstelle mit einer Meldung der Form:
Query requires at least one of these filters: <feld1>, <feld2>.
This prevents expensive full table scans.
Feldnamen-Schreibweise
Filterfelder tragen dieselben Namen wie in der Abfrage — die
camelCase-Feldnamen des Schemas, einsehbar im
GraphiQL Explorer. Verschachtelte Objekte werden über
ihre Objektstruktur gefiltert (z. B. station: { no: … }).
Unbekannte oder nicht filterbare Felder werden mit einer Validierungsmeldung abgelehnt.