如何将具有不同属性的两个节点合并为cypher中的一个节点?

时间:2016-01-11 06:19:09

标签: neo4j cypher

如何组合具有不同属性的两个节点并在cypher中合并为一个节点?

示例节点1具有名称属性,其值为name1,节点2具有分类属性,并且class1的值将合并为一个节点,将两个属性组合在一起

TNX

2 个答案:

答案 0 :(得分:1)

我非常确定这目前无法动态实现,但如果您知道自己要转移的属性:

MATCH (a:Label), (b:Label)
WHERE <something about a and b>
SET a.constraint = b.constraint, a.other_prop = b.other_prop
DELETE b // If you want do delete b

否则我建议使用Cypher加载对象,合并内存中的属性,然后进行查询以保存结果。我建议检查SET子句和+=运算符(here,它可以采用Map(哈希/字典/其他)并以这种方式附加所有给定的属性

答案 1 :(得分:1)

我认为这是可能的

请参阅http://neo4j.com/docs/stable/query-set.html

MATCH (at { name: 'Andres' }),(pn { name: 'Peter' })
SET at = pn
RETURN at, pn

如果您不想删除第一个节点的属性,请使用+ =。