对MERGE感到困惑有时会产生重复的关系

时间:2017-02-01 22:45:17

标签: neo4j cypher

当用户VISITED其他用户的个人资料

时,我有一个查询
    MATCH (you:User {user_id: { myId }}), (youVisited:User {user_id: { id }})
    MERGE (you)-[yvr:VISITED]->(youVisited)
    SET yvr.seen = false, yvr.created_at = timestamp()
    RETURN yvr.created_at as visited_at

我注意到在极少数情况下会发生重复的[:VISITED]关系。两者都具有相同的属性,并且实际上只有一个[:VISITED]无论如何(下次用户访问时,它应该简单地合并[:VISITED]并更新[:VISITED {created_at: ..., seen: false}]之间的{ created_at: 1485800172734, seen: false } 相同的用户节点:

MERGE

enter image description here

我认为.logo, .menu { display: inline-block; } ; 要防止这种情况发生?显然不是,为什么会发生这种情况,我怎样才能确保不会发生这种情况呢?

更新:我读过“重复问题”,但仍不确定我需要做什么。这是重复关系,而不是重复节点。如果甚至是解决方案,如何为关系创建约束?

0 个答案:

没有答案