我有一张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
但是这给了我所有关系的节点:在某些节点之间爱(即使它不是双向的)。
我该如何解决?
答案 0 :(得分:3)
要查找所有具有两个不同指向的爱情关系的人:
MATCH (a)-[:LOVE]->(b)<-[:LOVE]-(a)
WHERE id(a)<id(b)
RETURN a,b order by a.name
这里的WHERE
条件确保a和b不会在后续迭代中更改角色。