密码查询MATCH(n:BusinessBranch) RETURN n
返回所有节点,我想根据属性address
删除重复的节点及其关系。我该怎么做?
[更新]
-
要删除共享相同
address
属性值的所有BusinessBranch
节点(这也需要删除它们的所有关系):MATCH (b:BusinessBranch) WITH b.address AS address, COLLECT(b) AS branches WHERE SIZE(branches) > 1 FOREACH (n IN branches | DETACH DELETE n);
此查询收集具有相同地址的所有
BusinessBranch
节点,筛选具有多个分支的集合,然后在生成的集合中的所有分支上使用DETACH DELETE
(这将删除分支和它们的关系)。 -
要删除除一个外的所有重复节点,可以执行以下操作:
MATCH (b:BusinessBranch) WITH b.address AS address, COLLECT(b) AS branches WHERE SIZE(branches) > 1 FOREACH (n IN TAIL(branches) | DETACH DELETE n);
但是,在这种情况下,您应该首先查看APOC过程APOC.refract.mergeNodes,它更适合大多数用例。