假设,我有一个用户:
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
但是,它返回两个关系。我知道我可以用关系附加属性。但是,同样,我不知道它的cypher语法。
我是Neo4j的新手。任何建议都很棒!
谢谢!
我删除了与此查询的原始图上的关系:
START n=node(*)
MATCH (n)-[rel:HAS_ROLE]->(r)
WHERE n.name='Tamil' AND r.name='tester'
DELETE rel
我找到了。我改变了关系,拥有了财产。像这样:
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;
我不确定这是不是正确的方法。但是,它起作用了。