将重复节点和保存者关系合并到那些重复项已连接到的节点

时间:2019-05-13 00:10:59

标签: neo4j cypher

我的问题是关于如何合并多个重复的节点。

每个节点(作为副本)通过MENTIONED边缘连接到其他节点。

我要基于两个相同的属性合并这些重复的节点(属性分别为entity_typename,因此entity_type=entity_typename=name合并这两个节点),还可以保留那些节点已预先合并到新节点上的其他节点的关系。因此,新合并的节点可能与它所合并的节点所具有的其他节点具有2+的关系。

有人对如何构造此查询有任何建议吗?非常感谢。

1 个答案:

答案 0 :(得分:0)

您应使用 APOC library 来执行此操作。 APOC有一个过程 apoc.refactor.mergeNodes ,该过程可以将多个重复的节点合并到一个节点中。

所有关系也都合并到该节点上。

您可以引用以下查询来构造您的查询:

MATCH (p:Entity)
WITH p.name AS name, p.entity_type AS type, collect(p) as nodes
CALL apoc.refactor.mergeNodes(nodes, {properties: {`.*`: 'discard'}}) YIELD node
RETURN count(node) AS new_node_count
相关问题