Filtri e operatori
Ogni tabella accetta un argomento where per restringere l'insieme
dei risultati. Un'espressione di filtro è un oggetto annidato di
nomi di campo, operatori di confronto e valori. Più filtri di campo
vengono combinati implicitamente con AND.
Struttura
where: {
station: { no: { _eq: "2009" } }
timestamp: { _gte: "2026-01-01T00:00:00Z", _lt: "2026-02-01T00:00:00Z" }
}
L'espressione viene valutata come AND logico di tutte le condizioni
contenute.
Operatori di confronto
| Operatore | Significato | Tipo di valore |
|---|---|---|
_eq | uguale a | valore singolo |
_neq | diverso da | valore singolo |
_in | contenuto in | lista |
_nin | non contenuto in | lista |
_gt | maggiore di | valore singolo |
_gte | maggiore o uguale | valore singolo |
_lt | minore di | valore singolo |
_lte | minore o uguale | valore singolo |
_between | nell'intervallo [start, end) | lista di due elementi |
_is_null | è null (true) o non null (false) | booleano |
_startswith | inizia con | stringa |
Esempi:
where: {
parameterName: { _in: ["Q", "W", "WT"] }
value: { _gte: 0 }
}
where: {
timestamp: { _between: ["2026-01-01T00:00:00Z", "2026-02-01T00:00:00Z"] }
}
Combinatori logici
Per condizioni più complesse sono disponibili i combinatori _and,
_or e _not.
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" }
}
La profondità massima di annidamento di _and, _or e _not è di
cinque livelli. Annidamenti più profondi vengono respinti:
Filter nesting depth exceeds maximum of 5 levels
Filtri su oggetti annidati
I campi di un oggetto annidato sono referenziati tramite la stessa struttura a oggetti con cui compaiono nella query. Ad esempio, per filtrare sul numero di stazione della stazione annidata:
where: { station: { no: { _eq: "2009" } } }
Tipi di dato
| Tipo | Sintassi nel filtro |
|---|---|
String | doppi apici, ad es. "Aufgebaut" |
Int, Float | numerico senza apici |
AWSDateTime | ISO-8601 in UTC, ad es. "2026-01-01T00:00:00Z" |
| Lista | […, …] |
Controllo null | { _is_null: true } o { _is_null: false } |
Filtri obbligatori
Alcune tabelle richiedono almeno un filtro su un campo predefinito per evitare scansioni complete. I campi interessati sono indicati nella pagina del set di dati corrispondente.
In assenza di un filtro obbligatorio, l'interfaccia risponde con un messaggio della forma:
Query requires at least one of these filters: <campo1>, <campo2>.
This prevents expensive full table scans.
Forma dei nomi di campo
I campi di filtro usano gli stessi nomi della query — i nomi di campo
in camelCase dello schema, consultabili nel
GraphiQL Explorer. Gli oggetti annidati si filtrano
tramite la loro struttura a oggetti (ad es. station: { no: … }).
I campi sconosciuti o non filtrabili vengono rifiutati con un messaggio di validazione.