2012-04-29 40 views
2

我正在开发一个小的联盟结构来更好地理解图数据库的概念,以及学习Neo4J并看看它能为我提供什么。我已经和RDBMS合作多年了,Cypher很粗糙。我试图建立一个非常简单的联盟系统:描述Neo4j中的多级关系的Cypher查询?

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

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

现在,随着Cypher查询,我怎么能发现他的几代人,当然,发现他们的人数?他们在树上的位置?我怎么知道谁来自他的第三代或第四代,他们是谁?

我的心在这里扭曲,希望你们可以帮忙。

回答

3

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

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

精彩,彼得。非常感谢你! – vinnylinux