Neo4j 如果属性发生更改,如何强制建立唯一关系?
我正在使用Neo4j 如果属性发生更改,如何强制建立唯一关系?,neo4j,Neo4j,我正在使用neo4j构建一个应用程序,当一个用户跟踪另一个用户时,我会遇到问题。以下是查询: MATCH (me:User { id: 1234}),(friend:User) WHERE friend.id = 5678 CREATE UNIQUE (me)-[r:FOLLOWS {since:1439485400}]->(friend) RETURN r 如果用户重复该过程,则会出现问题,因为since值将发生更改,而CREATE UNIQUE将不起作用 如果属性发生更改,如何强制唯
neo4j
构建一个应用程序,当一个用户跟踪另一个用户时,我会遇到问题。以下是查询:
MATCH (me:User { id: 1234}),(friend:User)
WHERE friend.id = 5678
CREATE UNIQUE (me)-[r:FOLLOWS {since:1439485400}]->(friend)
RETURN r
如果用户重复该过程,则会出现问题,因为since
值将发生更改,而CREATE UNIQUE
将不起作用
如果属性发生更改,如何强制唯一的遵循关系
谢谢为此,您必须使用合并
:
MATCH (me:User { id: 1234}),(friend:User)
WHERE friend.id = 5678
MERGE (me)-[r:FOLLOWS]->(friend)
ON CREATE SET r.since = 1439485400
ON MATCH SET r.since = 1439485400
RETURN r
这保证了两个用户之间只有一个跟随。since
属性在后续调用时更新。谢谢,我必须删除MATCH
行上的de,否则跟随同一用户将更新since
值。我认为这是要求:-)很高兴您解决了它。