格式、参数
UNCOLLECT 可以将数据流中的每行数据展开或复制为多行。被展开的是一个类型为 ARRAY 的数据列,其内每行数组的每个元素在展开后各占一行,其同源列的每行数据将相应复制为多行。展开之后的数据流长度为原先每行数组的长度之和。
语法:
- 格式:uncollect
<column>
as<alias>
- 参数:(见下表)
- 受影响列:
<column>
及其所有同源列
名称 | 类型 | 规范 | 描述 |
---|---|---|---|
<column> |
ARRAY | / | 被展开的数组列 |
<alias> |
string | 同自定义别名的命名规范 | 数组列被展开后的别名,不可省略 |
详解
n(2).e()[:3].n(4) as path
with pnodes(path) as a1
uncollect a1 as a2
return path, a2
上面 UQL 代码中的 UNCOLLECT 子句将一个 ARRAY 列展开为 6 行,将其同源列复制为 6 行:
一般用法
示例:查找以银行卡 CA001 为起点、CA003 为终点的三步以内的路径,将这些路径上的点去重后依次返回
ab().src({_id == "CA001"}).dest({_id == "CA003"}).depth(:3) as p
with pnodes(p) as a
uncollect a as n
return distinct(n)