如何找到在查询一个节点的其他关系,Cypher支架

问题描述:

我的图是这样的:如何找到在查询一个节点的其他关系,Cypher支架

a-[sends]->b-[sends]->d 
c-[sends]->d 
a-[hostedOn]->S1 
a-[hostedOn]->S3 
b-[hostedOn]->S1 
b-[hostedOn]->S2 

我有过滤器上的财产“发送”的关系,并返回所期望的结果的查询。现在我也希望在同一个查询中,如果我也可以让它返回“hostedOn”。说,我的输出是B - [发送] - > D,我怎么也可以在同一个输出b- [hostedOn] - > S1 & S2?根据应用在“发送”关系上的滤波器,每次都会改变d&。

+0

也许分享你所指的查询? – Luanne

鉴于所提供的信息非常少,以下是一种可能的解决方案。许多解决方案都是可能的,具体取决于您需要返回的内容以及是否需要进行汇总。

MATCH (a)-[r:sends]->(b) 
WHERE r.foo = "bar" 
MATCH (a)-[r1:hostedOn]->(s1), (b)-[r2:hostedOn]->(s2) 
RETURN a, r, b, r1, s1, r2, s2; 

这个查询假设所有ab节点也必须有:hostedOn关系,所以没有OPTIONAL MATCH条款。

+0

非常感谢!这有助于增加我的理解:) – Aseem