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, absteigendIch 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!