如何查找每个关系深度的相关节点?

时间:2016-01-24 20:44:52

标签: neo4j cypher

我正在尝试在neo4j中查询以下数据模型。

Readable-[:readBy]-Student
    |
 [:owns]
    |
Readable-[:readBy]-Student
    |
 [:owns] -----------------------------------------
    |                                             |
Readable-[:readBy]-Student           Readable-[:readBy]-Student
    |
 [:owns]
    |  
Readable-[:readBy]-Student

查询:

将所有学生与地图中的第一个Readable保持距离。

MATCH (:Readable{name:'book'})-[:owns*0..3]-(r:Readable)
MATCH (r)-[:readBy]-(s:Student)
RETURN s

该查询似乎正确地遍历树并在每个距离找到每个学生,但我似乎无法记录每个学生最后返回的距离。

1 个答案:

答案 0 :(得分:1)

我认为你正在寻找.c功能。

LENGTH

编辑:按长度(键)和学生集合(值)获取地图:

MATCH p = (:Readable{name:'book'})-[:owns*0..3]-(:Readable)-[:readBy]-(s:Student)
RETURN s.name, LENGTH(p);