Neo4j 如何在Cypher查询中查找节点的其他关系
我的图表如下所示:Neo4j 如何在Cypher查询中查找节点的其他关系,neo4j,cypher,Neo4j,Cypher,我的图表如下所示: a-[sends]->b-[sends]->d c-[sends]->d a-[hostedOn]->S1 a-[hostedOn]->S3 b-[hostedOn]->S1 b-[hostedOn]->S2 我有一些查询过滤“发送”关系的属性并返回所需的结果。现在,如果我也可以要求它返回“hostedOn”,那么我也希望在同一个查询中使用它。比如说,我的输出是b-[sends]>d,我怎么能在相同的输出中也有b-[hostedOn
a-[sends]->b-[sends]->d
c-[sends]->d
a-[hostedOn]->S1
a-[hostedOn]->S3
b-[hostedOn]->S1
b-[hostedOn]->S2
我有一些查询过滤“发送”关系的属性并返回所需的结果。现在,如果我也可以要求它返回“hostedOn”,那么我也希望在同一个查询中使用它。比如说,我的输出是b-[sends]>d,我怎么能在相同的输出中也有b-[hostedOn]>S1和S2?根据在“发送”关系上应用的过滤器,b&d每次都会发生变化。鉴于提供的信息很少,这里有一个可能的解决方案。许多解决方案都是可能的,具体取决于需要返回的内容以及是否需要任何聚合
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;
此查询假定所有
a
和b
节点也必须具有:hostedOn
关系,因此不存在可选匹配
子句。也许可以共享您所指的查询?非常感谢!这有助于并增进了我的理解:)