Cypher - 收集不同匹配条款的关系

时间:2015-04-24 13:38:56

标签: neo4j cypher

我想从不同的匹配子句中收集关系作为结果中的单个列。更具体地说,我创建了一个与我的用例相对应的示例,可以在这里找到:http://console.neo4j.org/r/3g84gc。 r1,r2和r3是来自不同匹配子句的关系。返回多个关系的目标只有一个评估:

target = (0:Crew {name:"Neo"}), 
r1 = (0)-[0:KNOWS]->(1), 
r2 = (0)-[1:LOVES]->(2), 
r3 = (1)-[2:KNOWS]->(2). 

我想要的是:

target = (0:Crew {name:"Neo"}), 
rels = (0)-[0:KNOWS]->(1), (0)-[1:LOVES]->(2), (1)-[2:KNOWS]->(2)

我想这样做而不必在return子句中指定所有关系,然后手动解析关系列。通过找到的关系数量来订购目标的估值也是有利的。

有没有办法在Cypher中做到这一点?

1 个答案:

答案 0 :(得分:1)

如果我正确理解了问题,我认为以下RETURN会为您提供所需内容:

RETURN DISTINCT target, [r1,r2,r3]

在您共享的控制台示例中,这将返回数组第二个和第三个位置的null值,但如果需要,可以通过将OPTIONAL MATCH子句更改为{来修复该值{1}}