繁体   English   中英

在neo4j中删除具有其关系的多个节点

[英]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]-xMATCH 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM