2017-04-05 82 views
0

我想查詢以下內容:如何返回與我匹配的節點相關的節點的屬性?

列表學生及其導師的名字。

Image of the schema for my database

我使用下面的查詢:

MATCH (mName:Faculty)-[:Mentors]->(sName:Student) RETURN sName,mName 

但是當我運行它,我得到了導師的工資和學生的分類。我想要每個人的名字。我試過這個:

MATCH (mName:Faculty)-[:Mentors]->(sName:Student)<-[:S2P]-(person) RETURN person.Name,mName 

但是那有一個語法錯誤。

回答

0

您將個人信息劃分爲自己的節點,我認爲這不是在圖形數據庫中建模的最佳方式。我建議將這些數據整合到您的:Student和:Faculty節點中,儘管您可以將:Person標籤添加到它們兩個上,以便將它們視爲:其他查詢中的人員。

以您目前的模型,此查詢應該工作:

MATCH (facultyPerson)<-[:F2P]-(:Faculty)-[:Mentors]->(:Student)-[:S2P]->(studentPerson) 
RETURN facultyPerson.Name as faculty, studentPerson.Name as student 

如果希望每個教師的人在收集學生的名字,你可以收集使用():

MATCH (facultyPerson)<-[:F2P]-(:Faculty)-[:Mentors]->(:Student)-[:S2P]->(studentPerson) 
RETURN facultyPerson.Name as faculty, collect(studentPerson.Name) as students 

如果你合併您的節點數據,以便名稱,地址和dob屬於每個:教師和:學生,您的查詢變爲:

MATCH (fac:Faculty)-[:Mentors]->(student:Student) 
RETURN fac.Name as faculty, collect(student.Name) as students 

另外,我建議使用駱駝案件的財產名稱。

+0

非常感謝。第二個是我正在尋找的! –

相關問題