Filtres
Pour les opérations doc, distinct et count, il est possible de filtrer les résultats selon n’importe quel(s) champ(s) du contexte.
Les filtres doivent respecter les syntaxes suivantes :
-
aucun espace n’est autorisé au sein d’un filtre
-
un critère = <champ><opérateur_de_comparaison><valeur(s)>
-
si plusieurs critères sont indiqués dans un filtres, ils doivent être encadrés avec des parenthèses et séparés par « & » pour signifier « et » ou « | » pour signifier « ou ».
-
plusieurs niveaux de parenthèses sont autorisés pour prioriser les et/ou.
Cas particuliers
Un champ seul (sans opérateur de comparaison ni valeur) signifie « le champ n’est pas vide »
Exemple : (cop_mechowned)
Signifie que me % mechowned est renseigné
Un champ seul (sans opérateur de comparaison ni valeur) précédé du symbole « ! » signifie « le champ est vide »
Exemple : (!cop_mechowned)
Signifie que le % mechowned n'est pas renseigné
Opérateurs de comparaison
| Opérateur | Signification |
|---|---|
| = | Égal à |
| <> | Différent de |
| > | Supérieur (strictement) à |
| < | Inférieur (strictement) à |
| >= | Supérieur ou égal à |
| ⇐ | Inférieur ou égal à |
| ~ | Contient (spécial) |
| ~~ | Contient (spécial) sans distinction MAJ/min |
Contient (spécial)
Cet opérateur est puissant mais complexe à utiliser. Il permet de vérifier qu’un champ correspond à un motif exprimé comme une « regex » ou « regexp » ou « expression régulière » (Internet fourmille de ressources sur les regex).
Exemple
Le rôle est A ou C ou CA :
filter=cop_role~’^(A|C|CA)$’
Équivalent à
filter=(cop_role='A')|(cop_role='C')|(cop_role='CA')
Le titre commence par « JAMES BOND » :
filter=oeu_titre~'^JAMES BOND'
Exemples
Le rôle est A :
filter=cop_role='A'
Le rôle est A ou C :
filter=(cop_role='A')|(cop_role='C')
Le rôle est A et le lettrage est A :
filter=(cop_role='A')&(cop_chain='A')
Le (rôle est A ou C) et (le lettrage est A) :
filter=((cop_role='A')|(cop_role='C'))&(cop_chain='A')