Skip to content
davixim edited this page Nov 10, 2025 · 8 revisions

Filtre un tableau de données. Seules les données qui passent le filtres seront passées au composant suivant.

Exemple : Si le filtre n'autorise que les données dont l'ID est de 2, il n'y aura donc que la donnée d'ID 2 qui passera au composant suivant.

Le composant Filter ne fonctionne que sur des tableaux d'objets.

Exemples

Lorsqu'il n'y a qu'un seul champs à filtrer on peut procéder de cette manière : Ici seules les données n'ayant pas pour valeur "adresse" pour le champ "addressString" seront envoyées au composant suivant.

{
 addressString {
  $ne : adresse
 }
}

"$eq" signifie égal à,
"$ne" n'est pas égal à,
"$exists" interroge sur l'existence d'un champ.

Pour avoir plusieurs conditions de filtrage ( pour un même champ ou pour des champs différents ), il faut utiliser un objet "$or" ou "$and" qui se décompose en un tableau de 2 ou plusieurs éléments.
"$and" permettra d'accumuler les filtres
"$or" permettra de choisir les données correspondantes à un des filtres.

Dans l'exemple ci-dessous seuls les objets dont le champ_1 vaut "Oui" mais le champ_2 ne vaut pas "Oui" seront sélectionnés.

{
  "$and": [
    {
      "champ_1": {
        "$eq": "Oui"
      }
    },
    {
      "champ_2": {
        "$ne": "Oui"
      }
    }
  ]
}

Voici un autre exemple spécifiant que les objet error de l'objet address.lat ou adress.long ne doivent pas exister

{
  $or [
    {
      adress.lat {
        error {
          $exists : false
        }
      }
    },
    {
      adress.long {
        error {
          $exists : false
        }
      }
    }
  ]
}

On peut également utiliser la clause $where
Dans ce cas, on utilisera le mot clé this pour accéder à l'objet évalué

Ici par exemple on vérifie que le champ mail n'est pas non défini :

{
 $where : this.mail != undefined
}

Pour tester si les valeurs d'un champs n'ont pas une longueur nulle on peut faire :

{
 $where : this.mail.length>0
}

et pour filtrer deux conditions on peut utiliser && :

{
 $where : this.mail.length>0&&this.website.length>0
}

Fonctionnement technique

Utilise la syntaxe de la librairie loki (https://github.com/techfort/LokiJS/blob/master/tutorials/Query%20Examples.md) pour déterminer les conditions.

Branches

Il est possible d'utiliser deux composants Filter dans un workflow pour appliquer un traitement différent à des objets.

Input => Filter #1 => Output #1
Filter #2 => Output #2

Clone this wiki locally