数组、列表和集合函数
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
函数用于确定两个数组或列表是否至少有一个公共成员。
格式
{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功能的详细信息,请参阅 配置文件查询语言概述.