![](/img/trans.png)
[英]Neo4j Cypher: Get neighbours for variable length path given condition, skip those that do not meet condition
[英]Neo4J/Cypher : variable length of path pattern
我在受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
但是我怎樣才能得到一個人的所有后裔呢?
(以其他方式,如何在每個級別上重復個人之間的模式或將相同的模式應用於個人?)
您可以使用此查詢
match (n:individual{id:###})<-[:child*..9]-(n) return n,m
創建后代的祖先樹或相反的箭頭。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.