我正在开发一个小型联盟结构,以更好地理解图形数据库的概念,并学习Neo4J并了解它可以为我提供什么。我已经使用RDBMS多年了,Cypher非常粗糙。我正在尝试建立一个非常简单的联盟系统:
会员乔已经提到玛丽,鲍勃和马克。因此,我创建了所有节点并创建了“引用”关系。玛丽现在提到了朱莉,杰西卡和琼。鲍勃指的是比利和巴克斯特。马克指迈克尔和马克思。他们的推荐人不断推荐人。
对于Joe的一个原始推荐的每个推荐,Joe赢得了“一代”。他的第一代是玛丽,鲍勃和马克。他的第二代是朱莉,杰西卡,琼,比利,巴克斯特,迈克尔和马克思。
现在,通过Cypher查询,我怎样才能发现他的世代,当然还能发现他们的数字?他们在树上的位置?我怎么知道谁来自他的第3代或第4代,他们是谁?
我的思绪在这里扭曲,希望你们能帮忙。
答案 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