我在受GEDCOM文件启发的Neo4J图表中模拟了一个家谱。
我的节点和关系是:
Individual <-[CHILD]- Family
Family -[HUSBAND]-> Individual
Family -[WIFE]-> Individual
我不会将家庭建模为关系因为我可以附加多个事件(订婚,婚姻,废除,离婚......):
Family -[OCCUR]-> FamilyEvent{type,subtype,date,place,note}
我可以通过这个密码查询得到一个人的父亲和母亲:
MATCH (i:Individual {nickname:'Louis XVI'})
<-[r:CHILD]-
(m:Family)
-[r2:HUSBAND|WIFE]->
(h:Individual)
return i,r,m,r2,h
或者一个人的孩子:
MATCH (i:Individual {nickname:'le Pieux ou le Débonnaire'})
<-[r:HUSBAND]-
(m:Family)
-[r2:CHILD]->
(h:Individual)
return i,r,m,r2,h
但我怎样才能得到一个人的所有后代或后代呢? (换句话说,我如何重复个体之间的模式或将相同的模式应用于每个级别的个体?)
答案 0 :(得分:0)
您可以使用此查询
match (n:individual{id:###})<-[:child*..9]-(n) return n,m
创建祖先树或指向后方的箭头。