删除neo4j中的重复节点

时间:2014-12-24 11:35:31

标签: neo4j cypher nodes

我通过

获得多个节点
MATCH(n:Employee{name:"Govind Singh"}) return (n);

实际上我错误地创建了重复的节点。

现在我要删除除一个以外的所有重复节点。

2 个答案:

答案 0 :(得分:3)

假设重复的节点都是等效的,并且没有关系:

MATCH (n:Employee {name: "Govind Singh"})
WITH n
SKIP 1
DELETE n

答案 1 :(得分:1)

可能有几种方法可以做到这一点,我只是想到了这一点。我创建了一堆Govind Singh,这似乎有效:

MATCH(n:Employee{name:"Govind Singh"}) 
WITH max(id(n)) as justOneOfThem 
MATCH(n:Employee{name:"Govind Singh"}) 
WHERE id(n)<>justOneOfThem
DELETE n;

当您说&#34;删除重复的节点&#34;时,我将此解释为&#34;删除所有选择的#34;以外的所有节点。我在这里任意选择哪一个具有最高内部ID的人都会留下来。 (内部ID没有任何意义,不能读取任何内容的含义)。所以我找到所有Govind Singh,找出哪一个ID最高,然后我在第二场比赛中使用它再次找到它们并删除任何没有该ID的人。