Neo4j Cypher-Abfrage: Auftragssammlung, n erste Elemente

Ich habe Probleme beim Schreiben einer Cypher-Abfrage für diesen Social-Networking-Anwendungstyp. Es handelt sich um Benutzer, die Beiträge hinzufügen (im Wesentlichen ein Bild mit einer Beschreibung), die Benutzer überprüfen können.

In Cypher lautet das Diagrammmodell wie folgt:(user)-[:WROTE_REVIEW]->(review)-[:EVALUATES]->(post)

Die Abfrage, die ich zu schreiben versuche, sollte alle Beiträge zurückgeben, die ein bestimmter Benutzer überprüft hat, sowie einige allgemeine Informationen zu den Bewertungen eines Beitrags.

Das beinhaltet:

(ID des Beitrags)das Bild der Postdie Beschreibung des BeitragsDie Gesamtzahl der Bewertungen dieses BeitragsDie Gesamtzahl der Rezensenten dieses BeitragsDie Avatare der letzten 6 Rezensenten dieses Beitrags, sortiert nach dem Datum der Rezension, absteigend

Ich glaube, ich habe es geschafft, die ersten fünf Punkte zu erledigen, aber Punkt 6 bereitet mir Probleme. Die folgende Abfrage gibt mir alle Avatare, während ich nur die letzten 6 benötige.

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;

Kann mir jemand zeigen, wie man die Avatare nach Überprüfungsdatum bestellt (d. H.review.CreationTime) absteigend und die ersten sechs Gegenstände nehmen?

Vielen Dank!

Antworten auf die Frage(2)

Ihre Antwort auf die Frage