2013-05-27 81 views
1

我试图删除一些连接节点一起说图片,与其他连接节点有关系。 案例是这样的:
专辑 -CONTAINS_PHOTO- 照片(这里可能是多张图片)
照片 -taken_at- 位置
照片 -HAS- 评论
评论 -ADDED_BY- 用户删除多个节点与他们在neo4j中的关系

我想从照片中删除到评论节点。(因为专辑和用户的父节点所以我不需要删除它们,除非ñ直到需要)
在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]记为照片对象虽然它显示节点[7]删除,那不是正确的)。
我改变了我的标准来MATCH节点关系,
MATCH pht-[r]-xMATCH pht-[r?:HAS | :taken_at]-x
MATCH pht-[r:HAS]-x, pht-[s:taken_at]-x,但没有结果。

我经历了thisofficial link,但我想,我离开了一些东西..请帮助。

回答

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; 
+0

谢谢托马斯,为了更新我的知识。我正在尝试更多,以使查询更具体。我可以编辑你的答案一点,以便我可以接受它吗? – agpt

+0

只是为了它,我想我必须接受改变 –

+0

我甚至看到它之前,你的改变被拒绝了。它被认为太广泛而且不适合这个问题。 –

相关问题