我是Cypher的新手。
我有一个在NEO4J中构建的分层树,我需要在每个节点上设置一个“深度”属性,该属性将包含其父节点数。是否有一个可以设置/更新这些属性的cypher查询?
a
/ \
b c
/ \
d e
所以在这棵树中,a.depth = 0,b.depth = 1,c.depth = 1,d.depth = 2,e.depth = 2,依此类推......
谢谢!
答案 0 :(得分:2)
您可以为路径指定变量并使用其长度:
MATCH p=(a:MyLabel {key:''value'})-[*..20]->(x)
SET x.depth = length(p)
答案 1 :(得分:0)
Stefan的回答很有效,但这是我找到的另一种方式:
MATCH (a:MyLabel)<-[r:*..20]-(parent:MyLabel)
WITH a, count(r) AS parents
SET a.depth = parents
我的数据速度不快,几百个节点上的性能相同。