Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 如果属性发生更改,如何强制建立唯一关系?_Neo4j - Fatal编程技术网

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
值。我认为这是要求:-)很高兴您解决了它。