在系譜中,我們使用DNA來查找匹配。 Y-DNA發現父系匹配。這是否一個Neo4j的查詢(其中RN是一個人的唯一標識符)是:Neo4j密碼查詢基於性別的不同關係
MATCH (n{RN:1}) match p=n-[r:father*..22]->m return m.RN as RN,m.fullname as FullName,m.sex as Sex,m.bd as BD,m.dd as DD,length(p) as generation,case when left(m.bd,4)>'1930' and rtrim(m.dd)='' then 'Y' else 'N' end as mtDNA_Candidate, reduce(srt2 ='|', q IN nodes(p)| srt2 + q.RN + '|') AS PathOrder order by generation desc,PathOrder desc
或者我們使用的母系匹配的線粒體DNA:
`MATCH (n{RN:1}) match p=n-[r:mother*..22]->m return m.RN as RN,m.fullname as FullName,m.sex as Sex,m.bd as BD,m.dd as DD,length(p) as generation,case when left(m.bd,4)>'1930' and rtrim(m.dd)='' then 'Y' else 'N' end as mtDNA_Candidate, reduce(srt2 ='|', q IN nodes(p)| srt2 + q.RN + '|') AS PathOrder order by generation desc,PathOrder desc`
我的問題是相關到X染色體DNA。一位父親只給他的女兒一個X染色體,一位母親給所有的孩子一個。因此,我需要一個密碼查詢來獲取所有母親的信息,但只有在最近的一代中有一個女兒的時候才能得到父親的信息。如果後代有兒子,我就排除父親。我在用M和F的值的出生日期並不總是已知的節點屬性「性」,因此它不能被用來確定方向性
我想這一點,但得到一個錯誤:
`MATCH (n{RN:1}) match p=n-[r:mother*..22|father*..1]->m return m.RN as RN,m.fullname as FullName,m.sex as Sex,m.bd as BD,m.dd as DD,length(p) as generation,case when left(m.bd,4)>'1930' and rtrim(m.dd)='' then 'Y' else 'N' end as mtDNA_Candidate, reduce(srt2 ='|', q IN nodes(p)| srt2 + q.RN + '|') AS PathOrder order by generation desc,PathOrder desc`
什麼是錯誤信息? –
你能描述一下你的數據模型嗎?你究竟在尋找什麼圖表? –
帶有第三個查詢的錯誤消息是無效輸入'|':期望標識符字符,屬性映射或']'(第1行,第41列(偏移:40)) 「MATCH(n {RN:1})匹配p = n- [r:mother * .. 22 | father * .. 1] - > m將m.RN作爲RN,m.fullname作爲FullName,m.sex作爲Sex,m.bd作爲BD,m。 dd作爲DD,作爲代的長度(p),當左(m.bd,4)>'1930'和rtrim(m.dd)=''時的情況,則'Y',否則'N'結束爲mtDNA_Candidate,reduce(srt2 ='|',q IN節點(p)| srt2 + q.RN +'|')AS PathOrder order by generation desc,PathOrder desc「 ^ –