在Neo4j中描述Cypher查询的多层次关系?

时间:2012-04-29 20:26:15

标签: graph neo4j cypher

我正在开发一个小型联盟结构,以更好地理解图形数据库的概念,并学习Neo4J并了解它可以为我提供什么。我已经使用RDBMS多年了,Cypher非常粗糙。我正在尝试建立一个非常简单的联盟系统:

会员乔已经提到玛丽,鲍勃和马克。因此,我创建了所有节点并创建了“引用”关系。玛丽现在提到了朱莉,杰西卡和琼。鲍勃指的是比利和巴克斯特。马克指迈克尔和马克思。他们的推荐人不断推荐人。

对于Joe的一个原始推荐的每个推荐,Joe赢得了“一代”。他的第一代是玛丽,鲍勃和马克。他的第二代是朱莉,杰西卡,琼,比利,巴克斯特,迈克尔和马克思。

现在,通过Cypher查询,我怎样才能发现他的世代,当然还能发现他们的数字?他们在树上的位置?我怎么知道谁来自他的第3代或第4代,他们是谁?

我的思绪在这里扭曲,希望你们能帮忙。

1 个答案:

答案 0 :(得分:3)

温尼, 看看http://tinyurl.com/7vryzwz,这是你所看到的,基本上是

START referrer=node(1) 
MATCH path=referrer-[:referred*1..]->refferee 
RETURN referrer,refferee, length(path) as generation 
ORDER BY length(path) asc