簡體   English   中英

Neo4J / Cypher:可變長度的路徑模式

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM