尝试使用apoc.periodic.iterate批量删除重复的节点。服务器保持超时

时间:2019-05-09 15:04:21

标签: neo4j cypher

我正在尝试批量删除重复的节点。但是,我不断收到错误Connection to server lost. Reconnecting...,服务器似乎正在断开连接,然后重新连接。我正在尝试使用相同的共享属性Post对所有节点类型unique_post_id进行重复数据删除。关于如何进行重复数据删除的任何想法?

call apoc.periodic.iterate('
MATCH (p:Post)
WITH p.unique_post_id as id, collect(p) AS nodes 
WHERE size(nodes) >  1
FOREACH (p in tail(nodes) | DETACH DELETE p) ','', {batchSize:100000})

1 个答案:

答案 0 :(得分:0)

您使用的程序不正确。您对 $grade = Grade::all(); $marca = Marca::all(); $ncm = Ncm::all(); $clafiscal = Clafiscal::all(); $Otributaria = Origemtributaria::all(); $unidade = Unidade::all(); ... return view('products.create', compact( 'page', 'etiqueta', 'compCusto', 'grade', 'marca', 'ncm' , 'clafiscal', 'Otributaria', 'grupo', 'colecao'...); Is it possible for me to reduce these calls? 的第一个参数应该是一个Cypher查询,该查询返回要删除的节点流,而第二个参数应该是要分离删除这些节点的查询。

尝试一下:

apoc.periodic.iterate

如果仍然失败,请尝试减小call apoc.periodic.iterate( 'MATCH (p:Post) WITH p.unique_post_id as id, collect(p) AS nodes WHERE size(nodes) > 1 UNWIND tail(nodes) AS node RETURN node', 'DETACH DELETE node', {batchSize:100000, iterateList:true})