仅获取与双向关系相关的节点

时间:2015-05-26 15:19:00

标签: graph neo4j cypher nodes relationship

我有一张neo4j图,其中A- [r:LOVE] - > B和B- [r:LOVE] - > A。

我试图获得具有双向关系的所有节点(某些节点,例如C- [r:LOVE] - > B;但B不喜欢C),我必须只获得一次(i不想让它们重复)并按名称排序。我试图使用以下内容:

Match (n)-[r:LOVE]->(n1) return distinct n,n1 order by n.Name

但是这给了我所有关系的节点:在某些节点之间爱(即使它不是双向的)。

我该如何解决?

1 个答案:

答案 0 :(得分:3)

要查找所有具有两个不同指向的爱情关系的人:

MATCH (a)-[:LOVE]->(b)<-[:LOVE]-(a)
WHERE id(a)<id(b)
RETURN a,b order by a.name

这里的WHERE条件确保a和b不会在后续迭代中更改角色。