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

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

In

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

形式

{VALUE} in {ARRAY}

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

person.birthMonth in [3, 6, 9]

Not in

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

メモ

この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 クエリは、注文がおこなわれた店舗別にすべての注文をグループ化します。

orders.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

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 関数について詳しくは、プロファイルクエリ言語の概要を参照してください。

このページ