想象一下,我的查询结果在具有不同名称的节点中,但是在下一个查询中,我想搜索上一个结果的合并版本。如何合并两个列表或两组节点?例如,假设我有
(:class1)->(c1:class2)->(:class3)-(:class4)->(c2:class2)
然后我想基于c1.name和c2.name合并中的不同元素进行匹配。
我在某处学到的使这项工作成功的诀窍是
MATCH (:class1)-->(c1:class2)-->(:class3)--(:class4)-->(c2:class2)
WITH collect(c1)+collect(c2) as nodez
UNWIND nodez as c
RETURN c
Run Code Online (Sandbox Code Playgroud)
请注意,您不能以这种方式组合不同类型的列表(例如,节点+关系)。它们必须都是相同的类型(例如,所有节点或所有关系)。如果要在汇总列表中混合类型,则需要先将所有内容转换为相同类型(可能是map)。