我有一个这样设置的表:
...
PRIMARY KEY (id, "requestId", "createdAt")
) WITH CLUSTERING ORDER BY ("requestId" ASC, "createdAt" DESC)因此,当我像这样运行CQL时:
SELECT * from "Table" WHERE "requestId"='someId'我应该得到按createdAt DESC排序的结果吗?这是我所期望的,但我是Cassandra的新手,不确定它是如何工作的。
我想要实现的是检索属于某个requestId的所有记录,按创建日期DESC排序。
我该怎么做呢?
发布于 2021-06-17 20:57:08
在Cassandra中,数据只在分区内排序,而不是全局排序。如果您使用SELECT * from "Table" WHERE id = .... AND "requestId"='someId',那么您将按降序通过createdAt获取数据
您的原始查询不会开箱即用,因为您没有提供分区键。如果你设置了“允许过滤”(不好的主意),那么你会得到数据,但是在每个分区中按createdAt排序。
https://stackoverflow.com/questions/68017826
复制相似问题