在neo4j中覆盖标记而不是复制
我有两种类型的节点:Persons和Tags。我想用标签标记我的人,但这种情况可能会发生多次 使用Cypher标记某人的方法:在neo4j中覆盖标记而不是复制,neo4j,cypher,Neo4j,Cypher,我有两种类型的节点:Persons和Tags。我想用标签标记我的人,但这种情况可能会发生多次 使用Cypher标记某人的方法: CREATE (p1:Person { name : 'Alex'}) CREATE (t1:Tag{ tagId: 't1'}) CREATE (p1)-[:TAGGED]->(t1) 但是,如果我再次执行此操作,它将创建两个新的人员和标记,并将它们连接起来。我希望能够覆盖现有的关系,而不是创建新的用户或标记(如果它们已经存在)。最好的方法是什么?使用创
CREATE (p1:Person { name : 'Alex'})
CREATE (t1:Tag{ tagId: 't1'})
CREATE
(p1)-[:TAGGED]->(t1)
但是,如果我再次执行此操作,它将创建两个新的人员和标记,并将它们连接起来。我希望能够覆盖现有的关系,而不是创建新的用户或标记(如果它们已经存在)。最好的方法是什么?使用创建:
MERGE (p1:Person { name : 'Alex'})
MERGE (t1:Tag{ tagId: 't1'})
MERGE (p1)-[:TAGGED]->(t1)
谢谢。工作正常,但有时我会看到添加了两个关系,并创建了两个同名标记?在:Person(name)和:Tag(tagId)上创建唯一性约束。@NicoleWhite你会怎么做?