如何从 cypher 中的所有路径返回不同的关系类型?
cypher
示例查询:
MATCH p=(a:Philosopher)-[*]->(b:SchoolType) RETURN DISTINCT EXTRACT( r in RELATIONSHIPS(p)| type(r) ) as RelationshipTypes
这将返回每个路径p的集合 .
我想返回一个包含所有集合中不同关系类型的集合 .
以下是运行查询的图表要点的链接 -
http://gist.neo4j.org/?7851642
您可能首先将匹配路径上的所有关系收集到集合“allr”,然后从所有关系的集合中获取不同类型(r)的集合,
MATCH p=(a:Philosopher)-[rel*]->(b:SchoolType) WITH collect(rel) AS allr RETURN Reduce(allDistR =[], rcol IN allr | reduce(distR = allDistR, r IN rcol | distR + CASE WHEN type(r) IN distR THEN [] ELSE type(r) END ) )
请注意,集合"allr"中的每个元素'rcol'依次是每个匹配路径上的 collection 关系 .
1 回答
您可能首先将匹配路径上的所有关系收集到集合“allr”,然后从所有关系的集合中获取不同类型(r)的集合,
请注意,集合"allr"中的每个元素'rcol'依次是每个匹配路径上的 collection 关系 .