Aller au contenu principal

Filtres et opérateurs

Chaque table accepte un argument where permettant de restreindre l'ensemble de résultats. Une expression de filtre est un objet imbriqué composé de noms de champs, d'opérateurs de comparaison et de valeurs. Plusieurs filtres de champ sont combinés implicitement par AND.

Structure

where: {
station: { no: { _eq: "2009" } }
timestamp: { _gte: "2026-01-01T00:00:00Z", _lt: "2026-02-01T00:00:00Z" }
}

L'expression est évaluée comme le AND logique de toutes les conditions qu'elle contient.

Opérateurs de comparaison

OpérateurSignificationType de valeur
_eqégal àvaleur unique
_neqdifférent devaleur unique
_incontenu dansliste
_ninnon contenu dansliste
_gtsupérieur àvaleur unique
_gtesupérieur ou égalvaleur unique
_ltinférieur àvaleur unique
_lteinférieur ou égalvaleur unique
_betweendans l'intervalle [start, end)liste de deux éléments
_is_nullvaut null (true) ou non null (false)booléen
_startswithcommence parchaîne

Exemples :

where: {
parameterName: { _in: ["Q", "W", "WT"] }
value: { _gte: 0 }
}
where: {
timestamp: { _between: ["2026-01-01T00:00:00Z", "2026-02-01T00:00:00Z"] }
}

Combinateurs logiques

Pour des conditions plus complexes, les combinateurs _and, _or et _not sont disponibles.

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 profondeur maximale d'imbrication de _and, _or et _not est de cinq niveaux. Toute imbrication plus profonde est rejetée :

Filter nesting depth exceeds maximum of 5 levels

Filtres sur des objets imbriqués

Les champs d'un objet imbriqué sont référencés via la même structure d'objet que dans la requête. Par exemple, pour filtrer sur le numéro de station de la station imbriquée :

where: { station: { no: { _eq: "2009" } } }

Types de données

TypeSyntaxe dans le filtre
Stringguillemets doubles, p. ex. "Aufgebaut"
Int, Floatnumérique sans guillemets
AWSDateTimeISO-8601 en UTC, p. ex. "2026-01-01T00:00:00Z"
Liste[…, …]
Test null{ _is_null: true } ou { _is_null: false }

Filtres obligatoires

Certaines tables exigent au moins un filtre sur un champ désigné afin d'éviter les scans complets. Les champs concernés sont indiqués sur la page du jeu de données correspondante.

Si un filtre obligatoire est absent, l'interface répond avec un message de la forme :

Query requires at least one of these filters: <champ1>, <champ2>.
This prevents expensive full table scans.

Casse des noms de champs

Les champs de filtre portent les mêmes noms que dans la requête — les noms de champs en camelCase du schéma, consultables dans le GraphiQL Explorer. Les objets imbriqués se filtrent via leur structure d'objet (p. ex. station: { no: … }).

Les champs inconnus ou non filtrables sont rejetés par un message de validation.