两个节点之间的组关系

时间:2015-07-17 10:53:09

标签: neo4j cypher

我有一个数据库,某些节点可以与多达5种不同的关系相关联。我试图在Cypher中进行大量查询但是有太多信息重复,我有一些内存错误。

想象一下下面的图片:

Nodes with multiple relations

我得到的结果为:

(node1, r1, REL_A, node2)
(node1, r2, REL_B, node2)
(node1, r3, REL_C, node2)
(node1, r4, REL_D, node2)
(node1, r5, REL_E, node2)

我使用的查询如下所示:

MATCH (n:NODE_TYPE_A)-[d:REL1|REL2|REL3|REL4|REL5]->(p) RETURN DISTINCT n,d,type(d),p

有没有办法只使用所有关系的数组返回node1node2一次?这样结果会更小,我可以更好地处理它们而不会出现内存错误。

1 个答案:

答案 0 :(得分:2)

试试这个:

MATCH (n:NODE_TYPE_A)-[d:REL1|REL2|REL3|REL4|REL5]->(p) 
return n, collect(type(d)), p;