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érateur | Signification | Type de valeur |
|---|---|---|
_eq | égal à | valeur unique |
_neq | différent de | valeur unique |
_in | contenu dans | liste |
_nin | non contenu dans | liste |
_gt | supérieur à | valeur unique |
_gte | supérieur ou égal | valeur unique |
_lt | inférieur à | valeur unique |
_lte | inférieur ou égal | valeur unique |
_between | dans l'intervalle [start, end) | liste de deux éléments |
_is_null | vaut null (true) ou non null (false) | booléen |
_startswith | commence par | chaî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
| Type | Syntaxe dans le filtre |
|---|---|
String | guillemets doubles, p. ex. "Aufgebaut" |
Int, Float | numérique sans guillemets |
AWSDateTime | ISO-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.