Fonctions de tableau, de liste et d’ensemble
Profile Query Language (PQL) offre des fonctions pour faciliter l’interaction avec des tableaux, des listes et des chaînes. Vous trouverez plus d’informations sur les autres fonctions PQL dans la Profile Query Language présentation.
Dans
La fonction in
permet de déterminer si un élément est un membre d'un tableau ou d'une liste.
Format
{VALUE} in {ARRAY}
Exemple
La requête PQL suivante définit les personnes dont l’anniversaire est en mars, juin ou septembre.
person.birthMonth in [3, 6, 9]
Not in
La fonction notIn
permet de déterminer si un élément n'est pas un membre d'un tableau ou d'une liste.
notIn
assure également qu'aucune valeur n'est nulle. Par conséquent, les résultats ne sont pas une négation exacte de la fonction in
.Format
{VALUE} notIn {ARRAY}
Exemple
La requête PQL suivante définit les personnes dont l’anniversaire n’est ni en mars, ni en juin, ni en septembre.
person.birthMonth notIn [3, 6, 9]
Intersects
La fonction intersects
permet de déterminer si deux tableaux ou deux listes ont au moins un membre commun.
Format
{ARRAY}.intersects({ARRAY})
Exemple
La requête PQL suivante définit les personnes dont les couleurs préférées comprennent au moins le rouge, le bleu ou le vert.
person.favoriteColors.intersects(["red", "blue", "green"])
Intersection
La fonction intersection
sert à déterminer les membres communs à deux tableaux ou deux listes.
Format
{ARRAY}.intersection({ARRAY})
Exemple
La requête PQL suivante définit si la personne 1 et la personne°2 ont toutes deux des couleurs préférées parmi le rouge, le bleu et le vert.
person1.favoriteColors.intersection(person2.favoriteColors) = ["red", "blue", "green"]
Subset of
La fonction subsetOf
sert à déterminer si un tableau spécifique (tableau A) est un sous-ensemble d'un autre tableau (tableau B). En d'autres termes, elle permet de déterminer si tous les éléments du tableau A sont des éléments du tableau B.
Format
{ARRAY}.subsetOf({ARRAY})
Exemple
La requête PQL suivante définit les personnes qui ont visité toutes leurs villes préférées.
person.favoriteCities.subsetOf(person.visitedCities)
Superset of
La fonction supersetOf
sert à déterminer si un tableau spécifique (tableau A) est un sur-ensemble d'un autre tableau (tableau B). En d'autres termes, elle permet de déterminer si le tableau A contient tous les éléments du tableau B.
Format
{ARRAY}.supersetOf({ARRAY})
Exemple
La requête PQL suivante définit les personnes qui ont mangé des sushis et de la pizza au moins une fois.
person.eatenFoods.supersetOf(["sushi", "pizza"])
Includes
La fonction includes
permet de déterminer si un tableau ou une liste contient un élément donné.
Format
{ARRAY}.includes({ITEM})
Exemple
La requête PQL suivante définit les personnes dont le rouge est l’une des couleurs préférées.
person.favoriteColors.includes("red")
Distinct
La fonction distinct
est utilisée pour supprimer les doublons d’un tableau ou d’une liste.
Format
{ARRAY}.distinct()
Exemple
La requête PQL suivante définit les personnes qui ont passé des commandes dans plusieurs magasins.
person.orders.storeId.distinct().count() > 1
Group by
La fonction groupBy
est utilisée pour partitionner les valeurs d’un tableau ou d’une liste dans un groupe, en fonction de la valeur de l’expression.
Format
{ARRAY}.groupBy({EXPRESSION)
{ARRAY}
{EXPRESSION}
Exemple
La requête PQL suivante regroupe toutes les commandes par boutique dans laquelle la commande a été placée.
orders.groupBy(storeId)
Filtre
La fonction filter
est utilisée pour filtrer un tableau ou une liste en fonction d’une expression.
Format
{ARRAY}.filter({EXPRESSION})
{ARRAY}
{EXPRESSION}
Exemple
La requête PQL suivante définit toutes les personnes de 21 ans ou plus.
person.filter(age >= 21)
Map
La fonction map
sert à créer un tableau en appliquant une expression à chaque élément d’un tableau donné.
Format
array.map(expression)
Exemple
La requête PQL suivante crée un tableau de nombres et élève les valeurs d’origine au carré.
numbers.map(square)
First n
in array first-n
La fonction topN
est utilisée pour renvoyer les premiers éléments N
d’un tableau, lorsqu’ils sont triés dans l’ordre croissant en fonction d’une expression numérique donnée.
Format
{ARRAY}.topN({VALUE}, {AMOUNT})
{ARRAY}
{VALUE}
{AMOUNT}
Exemple
La requête PQL suivante renvoie les cinq premières commandes au prix le plus élevé.
orders.topN(price, 5)
Last n
in array
La fonction bottomN
est utilisée pour renvoyer les derniers éléments N
d’un tableau, lorsqu’ils sont triés dans l’ordre croissant en fonction d’une expression numérique donnée.
Format
{ARRAY}.bottomN({VALUE}, {AMOUNT})
{ARRAY}
{VALUE}
{AMOUNT}
Exemple
La requête PQL suivante renvoie les cinq premières commandes au prix le plus bas.
orders.bottomN(price, 5)
First item
La fonction head
est utilisée pour renvoyer le premier élément du tableau ou de la liste.
Format
{ARRAY}.head()
Exemple
La requête PQL suivante renvoie la première des cinq premières commandes au prix le plus élevé. Vous trouverez plus d’informations sur la fonction topN
dans la section First n
in array.
orders.topN(price, 5).head()
Étapes suivantes
Maintenant que vous en savez plus sur les fonctions de tableau, de liste et d’ensemble, vous pouvez les utiliser dans vos requêtes PQL. Pour plus d’informations sur les autres fonctions PQL, consultez la présentation du langage de requête de profil.