我在为这种社交网络类型的应用程序编写 Cypher 查询时遇到问题。它涉及添加帖子(本质上是带有描述的图像)的用户,用户可以查看这些帖子。
在 Cypher 中,图形模型是这样的:
(user)-[:WROTE_REVIEW]->(review)-[:EVALUATES]->(post)
我正在尝试编写的查询应该返回特定用户已查看的所有帖子,以及有关帖子评论的一些一般信息。
这包括:
- (帖子的ID)
- 帖子的图片
- 帖子的描述
- 该帖子的评论总数
- 这篇文章的审稿人总数
- 本帖最后6位审稿人头像,按审稿日期排序,降序排列
我想我已经完成了前五项,但第 6 项给我带来了麻烦。下面的查询给了我所有的头像,而我只需要最后 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;
有人可以告诉我如何按审查日期(即review.CreationTime
)降序排列头像,并取前六项吗?
谢谢!