我的查询返回表单的行:
node | {node1, node2, node3} | {float1, float2, float3}
我想要展开两个总是具有相同数量元素的集合,这样我就可以获得表格的行:
node | node1 | float1
node | node2 | float2
node | node3 | float3
我试图解开两个集合,但这将返回元素的所有排列,因此在这种情况下有9行。
有一种简单的方法可以使用cypher实现这一目标吗?
答案 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]
以下是输出示例。