получить вывод в виде массива не в отдельных строках в neo4j - PullRequest
0 голосов
/ 15 января 2020

Я написал запрос, который возвращает четыре столбца и четыре столбца имеют значения в отдельных строках.

Но я хочу, чтобы запрос возвращал мне массив для разных столбцов, а не значения в отдельных строки.

Запрос:

MATCH(c:Company{companyId:4})<-[re:WORKS_IN]-(p:Person)-[r:HAS_SCORE]->(ps:PerformanceScores)
WITH distinct ps.scoreDate as scoredate
MATCH (ps:PerformanceScores {scoreDate:scoredate})
WITH ps.score as score, scoredate
UNWIND scoredate as x
WITH x,score,scoredate
RETURN avg(score)as average,x as fulldate,["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][scoredate.month-1] as months,scoredate.year as year order by x

Что нужно изменить в запросе, чтобы он возвращал значения в массиве.

Спасибо

1 Ответ

0 голосов
/ 15 января 2020

В общем, этот подход работает, когда вы хотите, чтобы каждый из столбцов результата в массиве:

MATCH (p:Person) 
RETURN COLLECT(id(p)) AS ids,
       COLLECT(p.name) AS names

для вашего запроса, это выглядело бы как

MATCH(c:Company{companyId:4})<-[re:WORKS_IN]-(p:Person)-[r:HAS_SCORE]->(ps:PerformanceScores) 
WITH distinct ps.scoreDate as scoredate 
MATCH (ps:PerformanceScores {scoreDate:scoredate}) 
WITH ps.score as score, scoredate 
UNWIND scoredate as x 
WITH x,score,scoredate 
WITH { average:avg(score),
   fulldate: x,
   months:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][scoredate.month-1],
   year:scoredate.year 
   } as row order by row.fulldate
RETURN COLLECT (average) as averages, 
 ... etc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...