配列、リスト、およびセットの関数
Profile Query Language (PQL)には、配列、リスト、文字列の操作を簡単にする関数が用意されています。 その他のPQL関数について詳しくは、Profile Query Language 概要を参照してください。
次に含まれる
in関数は、項目が配列またはリストのメンバーであるかどうかをブール値として判断するために使用されます。
形式
{VALUE} in {ARRAY}
例
次の PQL クエリは、誕生日が 3 月、6 月または 9 月の人を定義します。
person.birthMonth in [3, 6, 9]
次に含まれない
notIn関数は、項目が配列またはリストのメンバーでないかどうかをブール値として判断するために使用されます。
notIn 関数はまた、どの値も NULL ではないことを保証します。したがって、結果は in 関数の完全な否定ではありません。形式
{VALUE} notIn {ARRAY}
例
次の PQL クエリは、誕生日が 3 月、6 月または 9 月でない人を定義します。
person.birthMonth notIn [3, 6, 9]
交わり
intersects関数は、2つの配列またはリストに少なくとも1つの共通メンバーがブール値として含まれているかどうかを判断するために使用されます。
形式
{ARRAY}.intersects({ARRAY})
例
次の PQL クエリは、お気に入りの色に赤、青、緑の1 つ以上が含まれる人を定義します。
person.favoriteColors.intersects(["red", "blue", "green"])
積集合
intersection関数は、2つの配列またはリストの共通メンバーをリストとして決定するために使用されます。
形式
{ARRAY}.intersection({ARRAY})
例
次の PQL クエリは、人物 1 と人物 2 の両方が、お気に入りの色を赤、青、および緑としているかどうかを定義します。
person1.favoriteColors.intersection(person2.favoriteColors) = ["red", "blue", "green"]
サブセット
subsetOf 関数は、特定の配列(配列 A)が別の配列(配列 B)のサブセットであるかを判断するために使用されます。言い換えれば、配列A内のすべての要素が配列Bの要素であることをブール値として表します。
形式
{ARRAY}.subsetOf({ARRAY})
例
次の PQL クエリは、お気に入りの都市をすべて訪問した人を定義します。
person.favoriteCities.subsetOf(person.visitedCities)
スーパーセット
supersetOf 関数は、特定の配列(配列 A)が別の配列(配列 B)のスーパーセットであるかを判断するために使用されます。つまり、この配列Aには、配列Bのすべての要素がブール値として含まれています。
形式
{ARRAY}.supersetOf({ARRAY})
例
次の PQL クエリは、寿司とピザを 1 回以上食べたことがある人を定義しています。
person.eatenFoods.supersetOf(["sushi", "pizza"])
次を含む
includes関数は、配列またはリストに特定の項目がブール値として含まれているかどうかを判断するために使用されます。
形式
{ARRAY}.includes({ITEM})
例
次の PQL クエリは、お気に入りの色に赤が含まれる人物を定義します。
person.favoriteColors.includes("red")
個別
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)
最初の項目
head関数は、配列またはリストの最初の項目をオブジェクトとして返すために使用されます。
形式
{ARRAY}.head()
例
次の PQL クエリは、最も金額が高い注文上位 5 件の最初の項目を返します。topN 関数の詳細については、first n in array の節を参照してください 。
orders.topN(price, 5).head()
次の手順
これで、配列、リスト、およびセット関数について学習し、PQL クエリ内で使用できるようになりました。その他の PQL 関数について詳しくは、プロファイルクエリ言語の概要を参照してください。