我想删除所有传入和传出关系的节点。
此传入和传出关系是可选的。
(t:Teacher)-[:TEACHES]->(s:Student)
(s:Student)-[:ATTENDS]->(c:Class)
学生节点与教师有可选关系,与课程有可选关系。
我想删除{id:1}的学生节点。
我知道如何删除所有节点和关系:
MATCH (n)
OPTIONAL MATCH (n)-[r]-()
DELETE n,r
但无法将其转换为特定节点。请帮忙。
答案 0 :(得分:1)
你非常接近:
match (n:Student)
where n.studentid = 2224
optional match (n)-[r]-()
delete n,r
(根据jjaderberg的评论更新)
答案 1 :(得分:1)
只需将判别属性添加到第一个匹配子句
即可MATCH (s:Student {id:1})
OPTIONAL MATCH s-[r]-()
DELETE r, s
如果id
代表内部节点ID而不是您设置的属性,那么
MATCH (s)
WHERE ID (s) = 1
OPTIONAL MATCH s-[r]-()
DELETE r, s
应该有效。通过内部id来保持节点是不规则的,通常是不好的。