Neo4j:如何删除与cypher的特定关系?

24 neo4j cypher

可以说,我有一个用户:

CREATE (n { name: 'Tamil' })
Run Code Online (Sandbox Code Playgroud)

和2个角色:

CREATE (n { name: 'developer' } ) 
CREATE (n { name: 'tester' } )
Run Code Online (Sandbox Code Playgroud)

然后,我在用户和两个角色中的每一个之间建立关系.

CYPHER 1.9  START a = node(*), b = node(*) 
WHERE a.name = 'Tamil' AND b.name = 'developer' 
CREATE (a)-[r:HAS_ROLE]->(b) 
RETURN r

CYPHER 1.9  START a = node(*), b = node(*) 
WHERE a.name = 'Tamil' AND b.name = 'tester' 
CREATE (a)-[r:HAS_ROLE]->(b) 
RETURN r
Run Code Online (Sandbox Code Playgroud)

现在,我想从用户中删除测试者角色关系.我试过了:

CYPHER 1.9  START a = node:node_auto_index('name:Tamil') 
MATCH a-[r:HAS_ROLE]-() 
RETURN r
Run Code Online (Sandbox Code Playgroud)

但是,它返回了两种关系.我知道我可以通过关系附加财产.但是,再一次,我不知道密码的语法.

我是Neo4j的新手.任何建议都会很棒!

谢谢!

Wer*_*rås 40

我使用此查询删除了原始图表上的关系:

START n=node(*) 
MATCH (n)-[rel:HAS_ROLE]->(r) 
WHERE n.name='Tamil' AND r.name='tester' 
DELETE rel
Run Code Online (Sandbox Code Playgroud)

  • 对于3.0.3版,您必须将MATCH子句更改为MATCH(n) - [rel:HAS_ROLE] - >(r)或者您得到一个错误(请注意'n'和'r'周围的括号) (2认同)