Neo4j Cypher consulta: pedido de colección, toma los primeros n elementos
Tengo problemas para escribir una consulta de Cypher para este tipo de aplicación de redes sociales. Implica a los usuarios que agregan publicaciones (esencialmente una imagen con una descripción), que los usuarios pueden revisar.
En Cypher el modelo gráfico es este:(user)-[:WROTE_REVIEW]->(review)-[:EVALUATES]->(post)
La consulta que estoy tratando de escribir debería devolver todas las publicaciones que un usuario en particular ha revisado, junto con información general sobre las revisiones de una publicación.
Esto incluye:
(ID de la publicación)la imagen del postla descripcion del postEl número total de comentarios de este post.El número total de revisores de esta publicación.los avatares de los últimos 6 revisores de este post, ordenados por fecha de revisión, descendientesCreo que he logrado completar los primeros cinco elementos, pero el artículo 6 me está dando problemas. La siguiente consulta me da todos los avatares, mientras que solo necesito los últimos 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;
Alguien me puede mostrar cómo ordenar los avatares por fecha de revisión (es decir,review.CreationTime
) descendiendo, y tomar los primeros seis elementos?
¡Gracias!