2017-04-05 1 views
0

다음을 쿼리하려고합니다.일치하는 노드와 관련된 노드의 속성을 반환하려면 어떻게해야합니까?

목록 학생 및 멘토의 이름입니다.

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

을하지만 그것을 실행할 때, 나는 스승의 급여와 학생의 분류를 얻을 :

Image of the schema for my database

나는 다음과 같은 쿼리를 사용하고 있습니다. 나는 각각의 이름을 갖고 싶다. 나는 이것을 시도했다 :

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

그러나 구문 오류가있었습니다.

답변

0

당신은 개인 정보를 자신의 노드로 나누고 있는데, 이것이 그래프 DB에서 가장 좋은 방법이라고 생각하지 않습니다. 그 데이터를 당신의 : Student와 : Faculty 노드에 통합하는 것이 좋지만, 두 사람 모두에 : Person 레이블을 추가하여 다음과 같이 처리 할 수 ​​있습니다. 다른 쿼리의 사람.

현재 모델

,이 쿼리가 작동합니다 :

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

를 각 학부 사람에 따라 학생의 이름을 수집 할 경우) (COLLECT 사용할 수 있습니다

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

그리고 경우를 노드 데이터를 통합하여 이름, 주소 및 dob가 Faculty 및 Student의 속성이되도록 쿼리가 다음과 같이됩니다.

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

또한 속성 이름에 낙타 케이스를 사용하는 것이 좋습니다.

+0

대단히 감사합니다. 두 번째 것은 정확히 제가 찾고있는 것입니다! –

관련 문제