陣列、清單和設定函式
Profile Query Language (PQL)提供的功能可讓您更輕鬆地與陣列、清單和字串互動。 如需其他PQL函式的詳細資訊,請參閱Profile Query Language 總覽。
位於
in
函式是用來判斷專案是陣列的成員,還是清單為布林值。
格式
{VALUE} in {ARRAY}
範例
以下PQL查詢定義三月、六月或九月有生日的人。
person.birthMonth in [3, 6, 9]
不在
notIn
函式是用來判斷專案是否不是陣列的成員或清單做為布林值。
notIn
函式 也 可確保這兩個值都不等於null。 因此,結果不是in
函式的完全否定。格式
{VALUE} notIn {ARRAY}
範例
下列PQL查詢會定義非三月、六月或九月的人員生日。
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
函式用於從陣列或清單中移除重複值,以作為陣列。
格式
{ARRAY}.distinct()
範例
下列PQL查詢會指定在多個商店下訂單的人。
person.orders.storeId.distinct().count() > 1
分組依據
groupBy
函式用來根據運算式的值,將陣列或清單的值分割成群組,從群組運算式的唯一值,到陣列運算式的值分割,做為對應。
格式
{ARRAY}.groupBy({EXPRESSION})
{ARRAY}
{EXPRESSION}
範例
下列PQL查詢會將下訂單所依據的所有訂單分組。
xEvent[type="order"].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功能的詳細資訊,請參閱Profile Query Language概觀。