Zapytanie Neo4j Cypher: zbieranie zamówień, weź pierwsze n elementów

Mam problem z napisaniem zapytania Cyphera dla tego typu aplikacji społecznościowych. Obejmuje użytkowników, którzy dodają posty (zasadniczo obraz z opisem), które użytkownicy mogą przeglądać.

W Cypherze model wykresu wygląda następująco:(user)-[:WROTE_REVIEW]->(review)-[:EVALUATES]->(post)

Zapytanie, które próbuję napisać, powinno zwracać wszystkie posty, które dany użytkownik przejrzał, wraz z ogólnymi informacjami o recenzjach posta.

To zawiera:

(identyfikator poczty)wizerunek postuopis postułączna liczba recenzji tego postacałkowita liczba recenzentów tego postaawatary 6 ostatnich recenzentów tego posta, uporządkowane według daty recenzji, malejąco

Myślę, że udało mi się ukończyć pierwsze pięć pozycji, ale pozycja 6 sprawia mi kłopoty. Poniższe zapytanie daje mi wszystkie awatary, a ja potrzebuję tylko ostatnich 6.

START user=node(2515)
MATCH (user)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post)
WITH distinct post
MATCH (review)-[:EVALUATES]->(post)
WITH post, count(review) as reviews
MATCH (reviewer)-[:WROTE_REVIEW]->()-[:EVALUATES]->(post)
WITH post, reviews, count(distinct reviewer) as reviewers, collect(distinct reviewer.Avatar) as avatars
ORDER BY post.CreationTime DESC
RETURN post.Id, post.Image, post.Description, reviews, reviewers, avatars;

Czy ktoś może mi pokazać, jak zamawiać awatary według daty przeglądu (tj.review.CreationTime) schodząc i biorąc pierwsze sześć przedmiotów?

Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion