我有不同的节点共享一个相同的属性字段,我需要将这些节点合并为一个,同时复制合并节点中的所有其他属性 .
例:
(n1,g,p1)(n2,g,p2)(n3,g,p3)=>(n,g,p1,p2,p3)
重要的是请注意,我不需要 apoc
解决方案,因为用户定义的功能在我工作的CAPS中不起作用
更新:
geohash是具有重复值的字段,因此我想通过此字段合并节点 .
CAPS团队给了我这个密码查询,以便从初始图中获得不同的geohash节点:
CATALOG CREATE GRAPH temp {
FROM GRAPH session.inputGraph
MATCH (n)
WITH DISTINCT n.geohash AS geohash
CONSTRUCT
CREATE (:HashNode {geohash: geohash})
RETURN GRAPH
}
但是它仍然缺少的是合并节点上其余属性的收集 .
我对这段关系没有问题,因为我们可以稍后从初始图中复制它们:
FROM GRAPH inputGraph
MATCH (from)-[via]->(to)
FROM GRAPH temp
MATCH (n), (m)
WHERE from.geohash = n. AND AND to.geohash = m.geohash
CONSTRUCT
CREATE (n)-[COPY OF via]->(m)
RETURN GRAPH
1 回答
在纯密码中,这不是100%可能的,这就是为什么有APOC程序的原因 .
要合并两个节点,您必须:
使用所有属性创建合并节点
创建合并节点上的所有节点关系
对于第一部分,它可能在密码中 . 示例:
但是对于第二部分,您需要能够创建与动态类型和动态方向的关系,这在cypher中是不允许的......