如何展开多个集合

how to unwind multiple collections

我的查询 returns 行的形式:

node | {node1, node2, node3} | {float1, float2, float3}

我想展开两个始终具有相同数量元素的集合,以便我将获得以下形式的行:

node | node1 | float1
node | node2 | float2
node | node3 | float3

我试图展开两个集合,但这将 return 元素的所有排列,因此在本例中为 9 行。

有没有简单的方法可以使用 cypher 实现此目的?

这是一个例子。它得到了Nodes的集合和Floats的集合。然后它遍历集合的大小并以表格形式将它们转储出来。不注意排序并假设它们是相同大小的集合。

MATCH (m:Top)-->(n:Float)
WITH m, collect(n.name) AS float
MATCH (m)-->(n:Node)
WITH m, float, collect(n.name) AS node, range(0,size(float)-1,1) AS coll_size
WHERE size(float) = size(node)
UNWIND coll_size AS idx
RETURN m.name, float[idx], node[idx]

这是输出示例。