我试图删除一些连接的节点,一起说 Photo ,其他连接的节点有关系。
案例是这样的:
相册 -CONTAINS_PHOTO- 照片(此处可能是多张图片)
的照片 -taken_at- 位置
的照片 -HAS-的注释
评论 -ADDED_BY- 用户
我想从Photo删除注释节点。(由于相册和用户是父节点,因此我不需要删除它们,除非n直到需要)
在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]-x, pht-[s:taken_at]-x
,但没有结果。
我经历了this和official link,但我想,我离某些东西很远......请帮忙。
答案 0 :(得分:2)
您需要单独查询和修改updating the graph的密码查询部分。 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;