[英]Delete multiple nodes with their relationships in neo4j
我正在尝试删除一些连接的节点,例如Photo ,以及具有关系的其他连接的节点。 情况是这样的:
相册 -CONTAINS_PHOTO- 照片 (此处可能有多张图片)
照片 -taken_at- 位置
图片 -HAS- 评论
评论 -ADDED_BY- 用户
我想从“照片到评论”节点中删除。 (由于专辑和用户是父节点,因此除非需要,否则我不需要删除它们)
在neo4j Webadmin控制台上,我触发了以下查询:
start pht=node:__types__(className="org.sg.domain.Photo"),
cmt=node:__types__(className="org.sg.domain.Comments")
MATCH pht-[r:HAS]-x,pht-[t:taken_at]-x, cmt-[s]-y
WHERE pht.photoId="MhQ2W1GrJ" AND
pht.albumName="FirstAlbum" AND
pht.userName="abc" delete r,s,t,pht,cmt;
(其中“ x”和“ y”是常规占位符。)
我得到以下输出:
Invalid query
Node[7] has been deleted in this tx
(其中将Node[7]
表示为Photo对象。尽管它显示Node [7]已删除,但这并不正确)。
我将条件更改为MATCH
节点关系为
MATCH pht-[r]-x
, MATCH pht-[r?:HAS | :taken_at]-x
MATCH pht-[r?:HAS | :taken_at]-x
,
MATCH pht-[r:HAS]-x, pht-[s:taken_at]-x
,但没有结果。
您需要分开查询和修改密码查询的各个部分才能更新图形 。 WITH
用作分隔令牌:
START pht=node:__types__(className="org.sg.domain.Photo"),
cmt=node:__types__(className="org.sg.domain.Comments")
MATCH pht-[r:HAS]-x,pht-[t:taken_at]-x, cmt-[s]-y
WHERE pht.photoId="MhQ2W1GrJ" AND
pht.albumName="FirstAlbum" AND
pht.userName="abc"
WITH r,s,t,pht,cmt
delete r,s,t,pht,cmt;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.