我插入来自多个用户的消息,并希望获取属于按“创建”字段降序排列的用户的子选择的最后消息。订购结果带有IN限制Pk
MY TABLE(经由获取消息 “USER_ID IN(...)”):
CREATE TABLE users (
user_id timeuuid,
created timestamp,
msg text,
PRIMARY KEY ((user_id), created)
)
WITH CLUSTERING ORDER BY (created DESC)
MY QUERY:
cqlsh:fb> SELECT user_id,created,msg FROM posts WHERE user_id IN (657818d6-9c7e-11e5-b392-978fb134d9c9,e2028f98-9c57-11e5-b96c-8863dfc615b7);
结果由 “创建” 仅内的一组排序每个“user_id”的消息,见下文(红线除2个不同的用户)。
但是,我希望整个结果排序为“创建DESC”,即“最后一个”应该在最上面。
请指教。谢谢!
HI再也 #1没有工作对我来说,因为我使用手动分页的无限滚动,结果我得到一个错误 _“与ORDER BY和在限制不能两个页面查询在分区键;你必须删除ORDER BY或IN和排序客户端,或禁用分页查询“# # #2将不会工作以及我的用例。 (必须提交作为第二条评论 - 长度) – doharlem
对不起,我应该提供更多的上下文。建立一个Facebook墙的模拟:朋友的帖子被拉为一个时间线,所以我的要求归结为: 1.我应该获取指定的一组朋友的帖子,对于每个用户不同(因此尝试IN)。 2.按时间反向排序。 3.需要分页。 关于IN性能打点完全有道理。 无法围绕不同的方法包裹我的头,并希望避免使用图形数据库构建所有内容。 有一种感觉我失去了一些简单明了的东西... 任何想法都非常感激! – doharlem
您正在使用哪个版本的cassandra和cassandra驱动程序? –