使用Cypher在Neo4j中合并结果/列表

时间:2017-05-01 22:42:01

标签: neo4j cypher

想象一下,我的查询会产生具有不同名称的节点,但在我的下一个查询中,我想搜索上一个结果的合并版本。如何合并两个列表或两组节点?举个例子,假设我有

(:1类) - >(C1:等级2) - >(:CLASS3) - (:CLASS4) - >(C2:等级2)

然后我想根据c1.name和c2.name合并中的不同元素进行MATCH。

1 个答案:

答案 0 :(得分:5)

我在某处学到的技巧是

MATCH (:class1)-->(c1:class2)-->(:class3)--(:class4)-->(c2:class2)
WITH collect(c1)+collect(c2) as nodez
UNWIND nodez as c
RETURN c

请注意,您不能以这种方式组合不同类型的列表(例如节点+关系)。它们必须是相同的类型(例如,所有节点或所有关系)。如果要在聚合列表中混合类型,则需要先将所有内容转换为相同类型(可能是地图)。