eig*_*yes 2 graph neo4j cypher
CREATE出于性能原因,我已经导入了数百万条记录,现在我想将MERGE这些记录放在一起,并保持所有关系完好无损。
有任何想法吗?
编辑:
MATCH (c1:company), (c2:company)
WITH c1, c2
WHERE c1.name = c2.name
SET c1=c2
Run Code Online (Sandbox Code Playgroud)
是我正在寻找的类型。
如果你想在 cypher 中合并节点,你可以这样做:
MATCH (c:Company)
WITH c.name as name, collect(c) as companies, count(*) as cnt
WHERE cnt > 1
WITH head(companies) as first, tail(companies) as rest
LIMIT 1000
UNWIND rest AS to_delete
MATCH (to_delete)<-[r:WORKS_AT]-(e:Employee)
MERGE (first)<-[:WORKS_AT]-(e)
DELETE r
DELETE to_delete
RETURN count(*);
Run Code Online (Sandbox Code Playgroud)
见:http : //www.neo4j.org/graphgist?dropbox-14493611%2Fmerge_nodes.adoc