Passa al contenuto principale

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

OperatoreSignificatoTipo di valore
_equguale avalore singolo
_neqdiverso davalore singolo
_incontenuto inlista
_ninnon contenuto inlista
_gtmaggiore divalore singolo
_gtemaggiore o ugualevalore singolo
_ltminore divalore singolo
_lteminore o ugualevalore singolo
_betweennell'intervallo [start, end)lista di due elementi
_is_nullè null (true) o non null (false)booleano
_startswithinizia constringa

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

TipoSintassi nel filtro
Stringdoppi apici, ad es. "Aufgebaut"
Int, Floatnumerico senza apici
AWSDateTimeISO-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.