陣列、清單和設定函式

Profile Query Language (PQL)提供的功能可讓您更輕鬆地與陣列、清單和字串互動。 如需其他PQL函式的詳細資訊,請參閱 Profile Query Language 概述.

in 函式是用來決定專案是陣列或清單的成員。

格式

{VALUE} in {ARRAY}

範例

以下PQL查詢定義在3月、6月或9月有生日的人。

person.birthMonth in [3, 6, 9]

不在

notIn 函式是用來判斷專案是否不是陣列或清單的成員。

NOTE
notIn 函式 另外 可確保這兩個值都不等於null。 因此,結果並非完全否定 in 函式。

格式

{VALUE} notIn {ARRAY}

範例

以下PQL查詢定義生日不是3月、6月或9月的人。

person.birthMonth notIn [3, 6, 9]

相交

intersects 函式是用來判斷兩個陣列或清單是否至少有一個通用成員。

格式

{ARRAY}.intersects({ARRAY})

範例

以下PQL查詢定義哪些人最喜愛的顏色至少包括紅色、藍色或綠色之一。

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

交集

intersection 函式用來決定兩個陣列或清單的共同成員。

格式

{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查詢會定義至少吃過一次壽司和比薩的人。

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

包含

includes 函式是用來決定陣列或清單是否包含指定專案。

格式

{ARRAY}.includes({ITEM})

範例

以下PQL查詢定義哪些人最喜歡的顏色包括紅色。

person.favoriteColors.includes("red")

Distinct

distinct 函式可用來從陣列或清單中移除重複值。

格式

{ARRAY}.distinct()

範例

下列PQL查詢會指定在多個商店下訂單的人。

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

分組依據

groupBy 函式用來根據運算式的值,將陣列或清單的值分割成群組。

格式

{ARRAY}.groupBy({EXPRESSION)
引數
說明
{ARRAY}
要分組的陣列或清單。
{EXPRESSION}
對應傳回陣列或清單中每個專案的運算式。

範例

下列PQL查詢會將放置訂單的所有訂單分組。

orders.groupBy(storeId)

篩選

filter 函式用於根據運算式篩選陣列或清單。

格式

{ARRAY}.filter({EXPRESSION})
引數
說明
{ARRAY}
要篩選的陣列或清單。
{EXPRESSION}
篩選依據的運算式。

範例

以下PQL查詢定義所有21歲或以上的人。

person.filter(age >= 21)

地圖

map 函式用於將運算式套用至指定陣列中的每個專案,以建立新陣列。

格式

array.map(expression)

範例

下列PQL查詢會建立新的數字陣列,並對原始數字的值進行平方。

numbers.map(square)

第一 n 在陣列中 first-n

topN 函式用於傳回第一個 N 在陣列中的專案,當根據給定的數值運算式依遞增順序排序時。

格式

{ARRAY}.topN({VALUE}, {AMOUNT})
引數
說明
{ARRAY}
要排序的陣列或清單。
{VALUE}
要排序陣列或清單的屬性。
{AMOUNT}
要傳回的專案數。

範例

下列PQL查詢會傳回價格最高的前五個訂單。

orders.topN(price, 5)

上次 n 在陣列中

bottomN 函式用於傳回最後 N 在陣列中的專案,當根據給定的數值運算式依遞增順序排序時。

格式

{ARRAY}.bottomN({VALUE}, {AMOUNT})
引數
說明
{ARRAY}
要排序的陣列或清單。
{VALUE}
要排序陣列或清單的屬性。
{AMOUNT}
要傳回的專案數。

範例

下列PQL查詢會傳回價格最低的前五個訂單。

orders.bottomN(price, 5)

第一個專案

head 函式用於傳回陣列或清單中的第一個專案。

格式

{ARRAY}.head()

範例

下列PQL查詢會傳回價格最高的前五個訂單中的第一個。 關於的更多資訊 topN 函式位於 第一 n 在陣列中 區段。

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

後續步驟

現在您已瞭解陣列、清單和設定函式,可以在PQL查詢中使用它們。 如需其他PQL函式的詳細資訊,請參閱 設定檔查詢語言概觀.

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