Java 删除多个节点及其在neo4j中的关系
我正在尝试一起删除一些连接的节点,例如照片,以及其他具有关系的连接节点。 案例如下:Java 删除多个节点及其在neo4j中的关系,java,neo4j,cypher,spring-data-neo4j,Java,Neo4j,Cypher,Spring Data Neo4j,我正在尝试一起删除一些连接的节点,例如照片,以及其他具有关系的连接节点。 案例如下: 相册-包含照片照片(这里可能有多张照片) 照片-在-地点拍摄 照片-有-评论 评论-由-用户添加 我想从照片删除到评论节点。(因为相册和用户是父节点,所以除非需要,否则我不需要删除它们) 在neo4j webadmin控制台上,我触发以下查询: start pht=node:__types__(className="org.sg.domain.Photo"), cmt=node:__types__(classN
相册-包含照片照片(这里可能有多张照片)
照片-在-地点拍摄
照片-有-评论
评论-由-用户添加 我想从照片删除到评论节点。(因为相册和用户是父节点,所以除非需要,否则我不需要删除它们)
在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
(其中,节点[7]
表示照片对象。虽然它显示节点[7]已删除,但这不正确)。我将标准更改为
MATCH
节点关系为匹配pht-[r]-x
,匹配pht-[r::HAS |:take_at]-x
,匹配pht-[r:HAS]-x,pht-[s:take\u at]-x
,但没有结果
我经历过,但我想,我离某件事有点远。。请提供帮助。您需要将密码查询的查询和修改部分分开<代码>与用作分离标记:
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;
谢谢托马斯,更新了我的知识。我在这方面做了更多的尝试,以使查询更加具体。我可以编辑一下你的答案吗,这样我就可以接受了?你的更改在我看到之前就被拒绝了。它被认为太广泛,不适合这个问题。我刚刚添加了
MATCH photo-[r?:HAS]>x-[s?:added_BY]-y,photo-[t:take_at]-z,photo