代码之家  ›  专栏  ›  技术社区  ›  sinedsem

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

  •  0
  • sinedsem  · 技术社区  · 6 年前

    我已经理解了,为了得到单向映射,我可以在编写查询时忽略方向。不过,我有个问题 插入数据 .

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

    我应该避免在另一个方向上建立次朋友关系吗?如果是的话,我怎样才能做到这一点呢?

    我的意思是,如何在cypher中写出“只有在其他方向上没有相同关系的创造关系”?

    1 回复  |  直到 6 年前
        1
  •  1
  •   InverseFalcon    6 年前

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

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

    这将检查一个现有的关系在任何一个方向,如果没有存在,它将创建一个任意方向。

    至于是否要在相反的方向创建第二个关系,如果可以,请避免这样做,除非它与第一个关系相比具有不同的含义。

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