cassandra - 如何获取 CQL 列表列的最后一个值?

标签 cassandra cql scylla

我正在使用 scyladb 列表 ( https://docs.scylladb.com/stable/cql/types.html#lists )。我从文档创建了一个相同的表:

CREATE TABLE plays (
    id text PRIMARY KEY,
    game text,
    players int,
    scores list<int> // A list of integers
);

创建表后,我使用查询插入数据:

INSERT INTO plays (id, game, players, scores)
           VALUES ('123-afde', 'quake', 3, [17, 4, 24241414]);

如何从表中仅获取最后分数 24241414,而不是获取完整的分数列表?我需要 CQL 查询(运算符)。

查询从比赛中选择分数 WHERE id = '123-afde' 返回完整列表。这不是我需要的。

最佳答案

CQL 语法不支持通过 CQL 列表的索引(在特定位置)选择元素,因为其性能可能无法预测,如 CASSANDRA-7396 中所述。 .

您需要在应用程序中实现它,方法是获取列表的大小/长度,然后使用该值计算最后一个索引位置。干杯!


👉请将鼠标悬停在 上来支持 Apache Cassandra 社区然后点击观看标签按钮。 🙏谢谢!

关于cassandra - 如何获取 CQL 列表列的最后一个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74739313/

相关文章:

go - cassandra中复合键的二级索引

java - 如何仅检索从 Cassandra 更改的信息?

java - 一个可更新的模型如何(例如 Cassandra CQL3 中的 “status”)并能够查询此状态?

scylla 服务器无法启动

java - 插入性能和插入稳定性差的 Cassandra 集群

cassandra - 在 CQL 中使用元组操作对分区行进行切片

cassandra - 如何配置 Cassandra TimeWindowCompactionStrategy

cassandra - 如果我将 RF 从 5 个减少到 3 个,然后停用 5 个节点中的 2 个,会发生什么情况?

elasticsearch - cassandra从一个节点备份到另一个节点

database-performance - 了解 nodetool cfstats 中的 "Number of keys"