陣列、清單和設定函式

Profile Query Language (PQL)提供的功能可讓與陣列、清單和字串的交互更輕鬆。有關其他PQL函式的詳細資訊,請參閱Profile Query Language overview

in函式用於確定項目是否是陣列或清單的成員。

格式

{VALUE} in {ARRAY}

範例

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

person.birthMonth in [3, 6, 9]

不在

notIn函式用於確定項目是否不是陣列或清單的成員。

注意

notIn函式​allo​可確保兩個值均不等於null。 因此,結果不是對in函式的完全否定。

格式

{VALUE} notIn {ARRAY}

範例

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

person.birthMonth notIn [3, 6, 9]

Intercests

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

topN函式用於根據給定的數值表達式按升序排序時,返回陣列中的第一個N項。

格式

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

範例

以下PQL查詢返回價格最高的前5個訂單。

orders.topN(price, 5)

陣列中最後一個n

bottomN函式用於根據給定的數值表達式按升序排序時,返回陣列中最後一個N項。

格式

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

範例

以下PQL查詢返回價格最低的前5個訂單。

orders.bottomN(price, 5)

第一項

head函式用於返回陣列或清單中的第一個項目。

格式

{ARRAY}.head()

範例

以下PQL查詢返回價格最高的前5個訂單中的第一個。 有關topN函式的更多資訊,請參閱array🔗部分的first n

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

後續步驟

現在您已經瞭解了陣列、清單和設定函式,可以在PQL查詢中使用這些函式。 有關其他PQL函式的詳細資訊,請閱讀配置檔案查詢語言概述

本頁內容