问题的具体描述:
我在利用nGQL实现相关语句功能遇到以下场景:
1.需要根据给定某个人物姓名的firstName通过person_knows_person这个edge查找1 TO 3 STEP所有人;2.根据步骤1中查到的人去通过person_isLocatedIn_place去查找这些人的位于的工作地点;3.根据步骤1中查到的人通过person_studyAt_organisation去查找这些人学习的大学;4.根据步骤1中查找的人通过person_workAt_organisation去查找这些人工作的公司;5.根据步骤3,4中查找到的学校和公司去查找这些学校和公司位于哪个国家,并将所有步骤查询到的信息组合起来
我目前已经写好的nGQL如下:
LOOKUP ON artist WHERE person.firstName == "$firstName" YIELD id(vertex) AS id | GO 1 TO 3 STEPS FROM $-.id OVER person_knows_person YIELD id(vertex) | GO FROM $-.id OVER person_isLocatedIn_place YIELD properties($$).name
// 1
MATCH(v)-[e:person_knows_person*1..3]-(v2) WHERE v.person.firstName == "firstName"
// 2
OPTIONAL MATCH (v2)-[e2: person_isLocatedIn_place]-(v3)
// 3
OPTIONAL MATCH (v2)-[e3: person_studyAt_organisation]-(v4)
// 4
OPTIONAL MATCH (v2)-[e3: person_workAt_organisation]-(v5)
// 查找国家
...
WITH v2 as personName, v3 as workingPlace, v4 as college, v5 as company
RETURN personName, workingPlace, college, company, country