数组、列表和集合函数

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