优化密码查询,删除重复关系

问题描述 投票:0回答:1

我正在尝试删除在相同节点下创建的一些重复关系。 我的意思是节点 A 通过关系 R 连接到节点 B 两次。因此我必须删除一种关系。 为此,我编写了一个查询,例如 匹配 p=()-[r: 关系]->() 以 r.id 作为 id,collect(r) 作为分支,其中 size(branches)>1 对于每个(n尾部(分支)|删除n)

我的问题是在这种情况下我应该提到分离删除还是简单删除就可以了!或者在这种情况下分离删除和删除两者都会做相同的工作?

还建议我如何优化这个查询!由于有数百万条记录需要删除。

我尝试过使用删除子句和分离删除子句,似乎两者的工作原理相同。注意-我使用的是 Neo4j 版本 3.5。

neo4j cypher
1个回答
0
投票

DETACH DELETE 是删除关系然后删除节点的更短方法。因此,我们不再执行删除节点然后删除关系的两步操作,而是一次性使用 DETACH DELETE。

对于关系,您不是将其与节点分离,而是将其删除。因此,不需要使用分离,但如果您对关系执行 DETACH DELETE,neo4j 会将其标记为错误。它理解冗余并删除它。

© www.soinside.com 2019 - 2024. All rights reserved.