让我们说,我有一个用户:
CREATE (n { name: 'Tamil' })
和2个角色:
CREATE (n { name: 'developer' } )
CREATE (n { name: 'tester' } )
然后,我建立了用户与用户之间的关系。两个角色中的每一个。
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
现在,我想从用户中删除测试者角色关系。 我试过了:
CYPHER 1.9 START a = node:node_auto_index('name:Tamil')
MATCH a-[r:HAS_ROLE]-()
RETURN r
但是,它会返回两种关系。 我知道我可以通过关系附加财产。但是,再一次,我不知道密码的语法。
我是Neo4j的新手。任何建议真的很棒!
谢谢!
答案 0 :(得分:40)
我使用此查询删除了原始图表上的关系:
START n=node(*)
MATCH (n)-[rel:HAS_ROLE]->(r)
WHERE n.name='Tamil' AND r.name='tester'
DELETE rel
答案 1 :(得分:1)
我找到了。我改变了关系以拥有财产。像这样:
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'developer'
CREATE (a)-[r:HAS_ROLE {id: xyz}]->(b)
RETURN r
CYPHER 1.9 START a = node(*), b = node(*)
WHERE a.name = 'Tamil' AND b.name = 'tester'
CREATE (a)-[r:HAS_ROLE {id: abc}]->(b)
RETURN r
然后下面的代码删除了指定的关系。
CYPHER 1.9 START a = node:node_auto_index('name:Tamil')
MATCH a-[r:HAS_ROLE]-()
WHERE r.id = abc
DELETE r;
我不确定这是否是正确的做法。但是,它有效。