【问题标题】:Get count of elements in Set type column in Cassandra获取 Cassandra 的 Set 类型列中的元素数
【发布时间】:2014-04-15 14:16:38
【问题描述】:

如何获取 Set 的 Cassandra (cql) 中的列中元素的计数; 例如;表中的列具有值 {'9970GBBHVOB61', '9970GBBHVOB62', '9970GBBHVOB6O'}。我希望从查询中返回 3

【问题讨论】:

标签: cassandra cql


【解决方案1】:

不幸的是,即使在 CQL 驱动程序 v2 中,集合支持也不完美:您可以在 upsert 语句中添加或删除项目。但不支持更多关于它们的信息,例如进行项目选择、询问集合项目的 TTL 或询问集合的大小。所以你必须

resultset: SELECT collection_column FROM ...

然后通过resultset.one()resultset.all() 获取项目并自己获取item.size()。对不起。

【讨论】:

  • 这似乎是一个繁重的操作,我还不如维护另一个存储计数的列(尽管这会带来冗余)。
【解决方案2】:

要对您的问题给出一个非常具体的答案 - “表中的列具有值 {'9970GBBHVOB61', '9970GBBHVOB62', '9970GBBHVOB6O'}。我希望从查询中返回 3”

有一个 size() 方法可以做到这一点.. 举例说明它是如何使用的:

 select order_id,items.item_id,last_modified from person.ecommerce_order   where size(items.item_id)> 1

解释查询:

items.item_id 是一个列表字段 .检查列表中是否有多个项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-04-22
    • 2011-11-09
    • 2011-10-25
    • 2015-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多