密码查询 MATCH(n:BusinessBranch) RETURN n返回所有节点,我想根据属性删除重复节点及其关系address。我怎么做?
cyb*_*sam 11
[更新]
要删除共享相同属性值的所有 BusinessBranch节点address(这也需要删除它们的所有关系):
MATCH (b:BusinessBranch)
WITH b.address AS address, COLLECT(b) AS branches
WHERE SIZE(branches) > 1
FOREACH (n IN branches | DETACH DELETE n);
Run Code Online (Sandbox Code Playgroud)
此查询收集所有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);
Run Code Online (Sandbox Code Playgroud)
但是,在这种情况下,您应该首先查看 APOC 过程apoc.refactor.mergeNodes,它更适合大多数用例。