配列、リスト、およびセットの関数

Profile Query Language (PQL)が提供する関数によって、配列、リストおよび文字列の操作が容易になります。 その他のPQL関数について詳しくは、Profile Query Language 概要を参照してください。

次に含まれる

in 関数は、項目が配列またはリストのメンバーであるかどうかをブール値として判断するために使用されます。

形式

{VALUE} in {ARRAY}

次の PQL クエリは、誕生日が 3 月、6 月または 9 月の人を定義します。

person.birthMonth in [3, 6, 9]

Not in

notIn 関数は、項目が配列またはリストのメンバーでないかどうかをブール値として判別するために使用されます。

NOTE
このnotIn 関数は​ また、どの値も NULL ではないことを保証します。したがって、結果は in 関数の完全な否定ではありません。

形式

{VALUE} notIn {ARRAY}

次の PQL クエリは、誕生日が 3 月、6 月または 9 月でない人を定義します。

person.birthMonth notIn [3, 6, 9]

Intersects

intersects 関数は、2 つの配列またはリストに、ブール値として少なくとも 1 つの共通メンバーが含まれているかどうかを判断するために使用されます。

形式

{ARRAY}.intersects({ARRAY})

次の PQL クエリは、お気に入りの色に赤、青、緑の1 つ以上が含まれる人を定義します。

person.favoriteColors.intersects(["red", "blue", "green"])

Intersection

intersection 関数は、2 つの配列またはリストの共通メンバーをリストとして決定するために使用されます。

形式

{ARRAY}.intersection({ARRAY})

次の PQL クエリは、人物 1 と人物 2 の両方が、お気に入りの色を赤、青、および緑としているかどうかを定義します。

person1.favoriteColors.intersection(person2.favoriteColors) = ["red", "blue", "green"]

Subset of

subsetOf 関数は、特定の配列(配列 A)が別の配列(配列 B)のサブセットであるかを判断するために使用されます。つまり、配列 A のすべての要素は、ブール値として配列 B の要素になります。

形式

{ARRAY}.subsetOf({ARRAY})

次の PQL クエリは、お気に入りの都市をすべて訪問した人を定義します。

person.favoriteCities.subsetOf(person.visitedCities)

Superset of

supersetOf 関数は、特定の配列(配列 A)が別の配列(配列 B)のスーパーセットであるかを判断するために使用されます。つまり、配列 A には、配列 B のすべての要素がブール値として含まれます。

形式

{ARRAY}.supersetOf({ARRAY})

次の PQL クエリは、寿司とピザを 1 回以上食べたことがある人を定義しています。

person.eatenFoods.supersetOf(["sushi", "pizza"])

Includes

includes 関数は、配列またはリストが、ブール値として指定された項目を含んでいるかどうかを判定するために使用されます。

形式

{ARRAY}.includes({ITEM})

次の PQL クエリは、お気に入りの色に赤が含まれる人物を定義します。

person.favoriteColors.includes("red")

Distinct

distinct 関数は、配列またはリストから重複する値を配列として削除するために使用します。

形式

{ARRAY}.distinct()

次の PQL クエリは、複数の店舗で注文した人物を指定します。

person.orders.storeId.distinct().count() > 1

Group by

groupBy 関数は、グループ化式の一意の値から、配列式の値のパーティションである配列へのマップとしての式の値に基づいて、配列またはリストの値をグループに分割するために使用されます。

形式

{ARRAY}.groupBy({EXPRESSION})
引数
説明
{ARRAY}
グループ化するリストまたは配列。
{EXPRESSION}
返されたリストまたは配列内の各項目をマッピングする式。

次の PQL クエリは、注文がおこなわれた店舗別にすべての注文をグループ化します。

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

Filter

filter 関数は、入力に応じて配列またはリストとして使用される式に基づいて配列またはリストをフィルタリングするために使用されます。

形式

{ARRAY}.filter({EXPRESSION})
引数
説明
{ARRAY}
フィルタリングする配列またはリスト。
{EXPRESSION}
フィルタリングに使用する式です。

次の PQL クエリは、21 歳以上のすべての人を定義します。

person.filter(age >= 21)

Map

map 関数を使用すると、特定の配列内の各項目に式を配列として適用して新しい配列を作成できます。

形式

array.map(expression)

次の PQL クエリは、数値の新しい配列を作成し、元の数値の値を 2 乗します。

numbers.map(square)

First n in array first-n

topN 関数は、配列として指定された数式に基づいて昇順で並べ替えられた場合に、配列の最初の N 項目を返すために使用されます。

形式

{ARRAY}.topN({VALUE}, {AMOUNT})
引数
説明
{ARRAY}
並べ替えるリストまたは配列。
{VALUE}
配列またはリストを並べ替えるプロパティ。
{AMOUNT}
返される項目の数。

次の PQL クエリは、最も金額が高い注文上位 5 件を返します。

orders.topN(price, 5)

Last n in array

bottomN 関数は、配列として指定された数式に基づいて昇順で並べ替えられた場合に、配列の最後の N 項目を返すために使用されます。

形式

{ARRAY}.bottomN({VALUE}, {AMOUNT})
引数
説明
{ARRAY}
並べ替えるリストまたは配列。
{VALUE}
配列またはリストを並べ替えるプロパティ。
{AMOUNT}
返される項目の数。

次の PQL クエリは、最も金額が低い注文上位 5 件を返します。

orders.bottomN(price, 5)

First item

head 関数は、配列またはリスト内の最初の項目をオブジェクトとして返すために使用されます。

形式

{ARRAY}.head()

次の PQL クエリは、最も金額が高い注文上位 5 件の最初の項目を返します。topN 関数の詳細については、first n in array の節を参照してください 。

orders.topN(price, 5).head()

次の手順

これで、配列、リスト、およびセット関数について学習し、PQL クエリ内で使用できるようになりました。その他の PQL 関数について詳しくは、プロファイルクエリ言語の概要を参照してください。

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