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

问题描述 投票:2回答:1

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

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

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

neo4j cypher
1个回答
5
投票

我在某处学到的技巧是

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

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

© www.soinside.com 2019 - 2024. All rights reserved.