在类似推特的应用程序中,我只想获得最后 3 个用户,他们发布了特定 HASHTAG 的推文(A、B、C、D、E)
START me=node(X), hashtag=node(A,B,C,D,E)
MATCH n-[USED_IN]->tweet<-[p:PUBLISH]-user-[FRIEND_OF]->me
WITH p.date? AS date,hashtag,user ORDER BY date DESC
WITH hashtag, COLLECT(user.name) AS users
RETURN hashtag._id, users;
这是我使用此查询得到的结果。这很好,但如果朋友列表很大,我可以在第二列中有一个非常大的数组。
+-------------------------------------------+
| hashtag | users |
+-------------------------------------------+
| "paradis" | ["Alexandre","Paul"] |
| "hello" | ["Paul"] |
| "public" | ["Alexandre"] |
+-------------------------------------------+
如果我添加一个 LIMIT 子句,在查询结束时,整个结果集都是有限的。
因为一个用户可以有非常多的朋友,我不想找回所有那些用户,而只想找回在那些标签中发布的最后 2 或 3 个
任何带有过滤器/减少的解决方案可以达到我的期望吗?
运行 neo4j 1.8.2