gpt4 book ai didi

neo4j - 如何在 Neo4j 中使用单个查询删除所有子节点和关系。?

转载 作者:行者123 更新时间:2023-12-01 10:34:29 27 4
gpt4 key购买 nike

我的 Neo4j 数据库中有一个树状节点结构。当我删除特定节点时,我想删除与该节点相关的所有子节点和关系。考虑以下查询生成的节点结构,

merge (p1:Person{nic:'22222v'})-[r1:R1]->(p2:Person{nic:'33333v'}) 
merge(p1)-[r2:R2]->(p3:Person{nic:'44444v'})
merge(p2)-[r3:R3]->(p3)
merge (p3)-[r4:R4]->(p4:Person{nic:'55555v'})
merge(p4)-[r5:R5]->(p5:Person{nic:'66666v'})
return r1,r2,r3,r4,r5

如果我输入 node(nic:44444v) 它应该删除 node(nic:44444v),node(nic:55555v),node(nic:66666v), 关系(r2), 关系(r3), 关系(r4) 和关系(r5)

最佳答案

您可以使用多个深度关系并删除节点:

MATCH (n:Person {nic:'44444v'})-[*0..]->(x)
DETACH DELETE x

0.. 深度定义将在 x 节点中嵌入 n 标识符,从而处理人员不这样做的情况t 有子节点。

较旧的 neo4j 版本的替代语法:

MATCH (n:Person {nic:'44444v'})-[*0..]->(x) 
OPTIONAL MATCH (x)-[r]-()
DELETE r, x

关于neo4j - 如何在 Neo4j 中使用单个查询删除所有子节点和关系。?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38179758/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com