聚合函数 collect() 可以将一列数据中的每一行依次放入一个数组,并返回该数组。聚合之后该数据列及其所有同源列只保留一行数据,其他行舍弃。
Arguments:
- 任意值 <any>,点、边取 UUID,路径取行号(从 0 开始),表格取行内元素构成的数组
Returns:
- 数组 <array>
收集一列 ATTR
示例:查询 10 个点,收集它们的 schema
find().nodes([1,2,3,4,5,6,7,8,9,10]) as n
return collect(n.@)
收集一列 NODE
示例:查询 10 个 @product 点,收集它们的 UUID
find().nodes({@product}) as n
limit 10
return collect(n)
收集一列 EDGE
示例:查询 10 个 @transfer 边,收集它们的 UUID
find().edges({@transfer}) as e
limit 10
return collect(e)
收集一列 PATH
示例:查找 10 条从银行卡 CA001 出发的两步转账路径,按终点银行卡的余额降序排列,收集路径的行序号
n({_id == "CA001"}).e({@transfer})[2].n(as n).limit(10) as p
order by n.balance desc
return collect(p)
分析:数据流中的路径的行序号从 0 开始,路径排序后行序号
收集一列 ARRAY
示例:查找从银行卡 CA001 出发的三步路径,计算每条路径的点集,再收集这些点集
n({_id == "CA001"}).e()[3].n() as p
with pnodes(p) as a
return collect(a)