1

重叠的双向关系

是否可以从双向关系中只显示一个方向关系?

(n)-[:EMAIL_LINK]->(m)

(n)<-[:EMAIL_LINK]-(m)

4

1 回答 1

3

如果所讨论的关系类型没有方向语义,则最佳做法是在图中仅将它们显示一次并在查询时省略方向,即(a)-[:EMAIL_LINK]-(b)代替(a)-[:EMAIL_LINK]->(b).

要摆脱不同方向的重复关系,请使用:

MATCH (a)-[r1:EMAIL_LINK]->(b)<-[r2:EMAIL_LINK]-(a)
WHERE ID(a)<ID(b)
DELETE r2

如果您的图表很大,您需要通过添加LIMIT并多次运行查询来处理合理的事务大小,直到所有事务都处理完毕。

注意:这WHERE ID(a)<ID(b)是必要的。否则ab可能会在以后的迭代中改变角色。因此r1,andr2也会改变角色,并且都被删除。

于 2015-02-20T08:26:27.210 回答