如何展开多个集合

时间:2015-01-22 21:35:14

标签: neo4j cypher

我的查询返回表单的行:

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

我想要展开两个总是具有相同数量元素的集合,这样我就可以获得表格的行:

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

我试图解开两个集合,但这将返回元素的所有排列,因此在这种情况下有9行。

有一种简单的方法可以使用cypher实现这一目标吗?

1 个答案:

答案 0 :(得分:5)

这是一个例子。它获得了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]

以下是输出示例。

enter image description here