这是一个非常简单的问题,但是第一次阅读文档,我无法弄清楚如何构造这个查询.假设我的图表看起来像:

此外,每个人都有与之相关的年龄. 什么CYPHER查询将为我提供约翰的年龄和约翰的整个朋友树的所有年龄的列表?
到目前为止我尝试过的:
MATCH (start)-[:friend]>(others)
WHERE start.name="John"
RETURN start.age, others.age
Run Code Online (Sandbox Code Playgroud)
这有几个问题,
这只是一个朋友的深度,我想去约翰的所有朋友.
它不返回列表,而是返回一系列列表(john.age, other.age).
Ras*_*ash 28
所以你需要的不仅是约翰的朋友,也是朋友的朋友.因此,您需要告诉neo4j递归地深入图表.
此查询深入2级.
MATCH (john:Person { name:"John" })-[:friend *1..2]->(friend: Person)
RETURN friend.name, friend.age;
Run Code Online (Sandbox Code Playgroud)
为了n深入,不要放任何东西,即*1..
哦,我也在neo4j中找到了这个很好的例子
那么这*1..2意味着什么:
* 表示它的递归.
1表示不包含john本身,即是起始节点.如果你在这里加0,它也将包括它John node自己.
.. 表示从这个节点走到......
2表示递归的级别.在这里你说停在2级.即不要超越史蒂夫.如果你没有放任何东西,它会继续前进,直到它找不到"有"朋友关系的节点