求问!!!如何在批量输入数据的时候就避免节点、关系的重复
发布于 5 年前 作者 gm55555 3615 次浏览 来自 问答

在导入大量数据的时候,有时可能会重复操作,有没有一种方法能够避免这个问题,就是不因执行 n 次就产生 n 次同样的关系。 我知道怎么样筛选出重复数据,但如何批量删除重复数据也是个问题,希望大家可以帮帮我,万分感谢。 总结: 问题1:怎样实现更新插入,不因执行 n 次就产生 n 次同样的关系 问题2 :如何批量删除重复数据

5 回复

关于第一个问题 ,可以使用Merge 替代CREATE

大概意思就是 根据匹配的条件查询,如果存在,就返回 存在的值,不存在,就创建

MERGE (n:Person {id: "唯一的ID"})
 ON CREATE SET n.created = timestamp()
 ON MATCH SET
 n.counter = coalesce(n.counter, 0) + 1,
 n.accessTime = timestamp()

嗯嗯,谢谢,我查了一下,Merge是合并,相当于插入更新

关于第二个问题


这是我之前写的删除重复数据的想法

  • “{name:com.contributive_initiator,com:com.company} ” 这个是判定重复的标准
  • 然后取数组的第一个,其余删除

MATCH (com:Company)
WITH {name:com.contributive_initiator,com:com.company} as item,collect(com) as list
where size(list)>1 
unwind list[1..size(list)] as user 
detach delete user

收到,十分感谢

建立唯一索引也会有助于避免数据数据重复的问题

回到顶部