我应该避免在单向映射中在两个节点之间创建两个关系吗?

时间:2018-07-27 07:32:38

标签: neo4j cypher

我已经了解到,为了获得单向映射,我在编写查询时可以忽略方向。但是,我对插入数据有疑问。

UserA -[friend]-> UserB
UserA <-[friend]- UserB

我应该避免在其他方向上创建次要朋友关系吗?如果是这样,我该如何实现?

我的意思是,如何用密码写“仅在其他方向没有相同关系的创造关系”?

1 个答案:

答案 0 :(得分:1)

您想合并关系。与CREATE不同,您可以省略合并关系的方向:

MERGE (userA)-[:FRIEND]-(userB)

这将检查任一方向上的现有关系,如果不存在,则会创建一个具有任意方向的关系。

关于是否要在相反的方向上创建第二个关系,请尽可能避免,除非与第一个关系相比有不同的含义。

例如,一个人可能会爱上另一个人,但这并不意味着另一个人会爱上他们,因此需要第二种关系来巩固这一点。