覆盖neo4j中的标签而不是重复

时间:2016-05-24 15:48:25

标签: neo4j cypher

我有两种类型的节点:人物和标签。我想用标签标记我的人员,但它可以多次发生。

使用Cypher标记人员的方法:

CREATE (p1:Person { name : 'Alex'})
CREATE (t1:Tag{ tagId: 't1'})
CREATE 
  (p1)-[:TAGGED]->(t1)

但是,如果我再次执行此操作,那么它将创建两个新人和标签并连接它们。我希望能够覆盖现有关系,而不是创建新用户或标签(如果它们已经存在)。这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

使用merge代替create

MERGE (p1:Person { name : 'Alex'})
MERGE (t1:Tag{ tagId: 't1'})
MERGE (p1)-[:TAGGED]->(t1)