Fonctions de tableau, de liste et d’ensemble

Profile Query Language (PQL) offre des fonctions permettant de faciliter l’interaction avec des tableaux, des listes et des chaînes. Vous trouverez plus d’informations sur d’autres fonctions de 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 sous la forme d'une valeur booléenne.

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]

Pas dans

La fonction notIn permet de déterminer si un élément n'est pas un membre d'un tableau ou d'une liste en tant que valeur booléenne.

NOTE
La fonction 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]

Intersections

La fonction intersects permet de déterminer si deux tableaux ou deux listes ont au moins un membre commun en tant que valeur booléenne.

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 est utilisée pour déterminer les membres communs de deux tableaux ou listes sous forme de liste.

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"]

Sous-ensemble de

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, tous les éléments du tableau A sont des éléments du tableau B sous la forme d’une valeur booléenne.

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)

Sur-ensemble de

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, ce tableau A contient tous les éléments du tableau B sous la forme d’une valeur booléenne.

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"])

Inclut

La fonction includes permet de déterminer si un tableau ou une liste contient un élément donné sous forme de valeur booléenne.

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 valeurs en double d'un tableau ou d'une liste sous forme de tableau.

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 en un groupe en fonction de la valeur de l'expression sous la forme d'un mappage de valeurs uniques de l'expression de regroupement à des tableaux qui sont des partitions de la valeur de l'expression de tableau.

Format

{ARRAY}.groupBy({EXPRESSION})
Argument
Description
{ARRAY}
Tableau ou liste à regrouper.
{EXPRESSION}
Expression qui mappe chaque élément du tableau ou de la liste renvoyée.

Exemple

La requête PQL suivante regroupe toutes les commandes par boutique dans laquelle la commande a été placée.

xEvent[type="order"].groupBy(storeId)

Filtre

La fonction filter est utilisée pour filtrer un tableau ou une liste en fonction d’une expression sous forme de tableau ou de liste, selon l’entrée.

Format

{ARRAY}.filter({EXPRESSION})
Argument
Description
{ARRAY}
Tableau ou liste à filtrer.
{EXPRESSION}
Expression par laquelle filtrer.

Exemple

La requête PQL suivante définit toutes les personnes de 21 ans ou plus.

person.filter(age >= 21)

Map

La fonction map est utilisée pour créer un tableau en appliquant une expression à chaque élément d'un tableau donné en tant que tableau.

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 sous la forme d'un tableau.

Format

{ARRAY}.topN({VALUE}, {AMOUNT})
Argument
Description
{ARRAY}
Tableau ou liste à trier.
{VALUE}
Propriété dans laquelle trier le tableau ou la liste.
{AMOUNT}
Nombre d'éléments à renvoyer.

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 sous la forme d'un tableau.

Format

{ARRAY}.bottomN({VALUE}, {AMOUNT})
Argument
Description
{ARRAY}
Tableau ou liste à trier.
{VALUE}
Propriété dans laquelle trier le tableau ou la liste.
{AMOUNT}
Nombre d'éléments à renvoyer.

Exemple

La requête PQL suivante renvoie les cinq premières commandes au prix le plus bas.

orders.bottomN(price, 5)

Premier élément

La fonction head est utilisée pour renvoyer le premier élément du tableau ou de la liste sous la forme d'un objet .

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.

recommendation-more-help
770bc05d-534a-48a7-9f07-017ec1e14871