这是一个非常简单的问题,但是第一次阅读through the docs,我无法弄清楚如何构建此查询。假设我的图表看起来像:
此外,每个人都有与之相关的年龄。 CYPHER的查询将为我提供约翰的年龄和约翰的整个朋友树的所有年龄列表?
到目前为止我尝试过:
MATCH (start)-[:friend]>(others)
WHERE start.name="John"
RETURN start.age, others.age
这有几个问题,
这只是一个朋友的深度,我想去所有约翰的朋友。
它不返回列表,而是返回一系列(john.age, other.age)
。
答案 0 :(得分:24)
所以你需要的不仅是约翰的朋友,还有朋友的朋友。因此,您需要告诉neo4j递归地深入图表。
此查询深入2级。
n
要*1..
深入了解,不要放任何东西,*1..2
哦,我也在neo4j中找到了这个nice example
那么*
的含义是什么:
1
表示它是递归。
John node
表示不包含john本身,即是起始节点。如果你在这里加0,它也将包括..
本身。
2
表示从此节点开始直到......
{{1}}表示递归级别。在这里你说停在2级。即不要超越史蒂夫。如果你没有放任何东西,它将继续前进,直到它找不到一个节点"有"朋友关系
这些类型的查询匹配的