我们希望能够做类似的事情。
select * from User where rewards.size > 0
架构时
create table user (
id uuid primary key,
network_id uuid,
rewards set<uuid>,
name text
);
答案 0 :(得分:3)
遗憾的是,即使在CQL Driver v2中,Collections-support也不支持 完美:您可以在upsert语句中添加或删除项目。但更多的是 他们就像做项目选择一样,要求收集项目的TTL或 询问集合的大小,不受支持。所以你必须
resultset: SELECT collection_column FROM ...
然后采取项目resultset.one()
或resultset.all()
并自己获取item.size()
。
您要做的是添加带有计数器的索引列以计算和快速读取元素计数。如果你只想知道集合是否为空,你可能需要一个带有布尔值的索引列。索引确保您可以有效地扫描列。
答案 1 :(得分:-1)
有一个size()方法可以做到这一点..以给出如何使用它的示例:
select order_id,items.item_id,last_modified from person.ecommerce_order where size(items.item_id)> 1
解释查询:
items.item_id 是一个列表字段 检查列表中是否有多个项目。