【发布时间】:2020-05-13 12:32:17
【问题描述】:
我需要使用 Cypher 删除具有相同属性值(年份)的重复关系,其中节点之间存在多个关系。举个例子,给定:
n1-[r{year:"2019"]->n2
n1-[r{year:"2019"]->n2
n1-[r{year:"2020"]->n2
我希望:
n1-[r{year:"2019"]->n2
n1-[r{year:"2020"]->n2
我不需要将属性组合到“2019,2020”,想保存多个不同属性(年份)的关系。
尝试为我的任务更改节点和关系的这些工作代码:
MATCH (n1),(n2)
WHERE n1.name = n2.name and id(n1) < id(n2)
WITH [n1,n2] as ns
CALL apoc.refactor.mergeNodes(ns)
YIELD node
RETURN node
MATCH (n1) -[r]-> (n2)
WITH n1,n2, collect(r) as rels
CALL apoc.refactor.mergeRelationships(rels)
YIELD rel
RETURN rel
但是 WITH 之后我通常不能写部分
MATCH (n1) -[r1]-> (n2), (n1) -[r2]-> (n2)
WHERE r1.year = r2.year and id(r1) < id(r2)
WITH #??? collect(?) as rels
CALL apoc.refactor.mergeRelationships(rels)
YIELD rel
RETURN rel
【问题讨论】: