Cassandra 1.2从列表列中删除一个项目,并在列表为空时删除该行

时间:2013-05-10 23:59:03

标签: cassandra

我有一个Cassandra 1.2列系列,如下所示:

food: 'steak'
value: 10
desserts: ['chocolate cake','banana pie','strawberry icecream']

我需要从这一行中删除一个甜点,例如'巧克力蛋糕',但如果甜点列表在删除其中一个项目之后导致一个空列表我需要删除整行,是否有办法在Cassandra的单个查询中实现这一点?如果没有,最好的方法是什么?

更多信息:我用来删除列表中的一个项目的查询是:

update Table
set desserts = desserts - ['chocolate cake']
where food = 'steak'

提前致谢!

2 个答案:

答案 0 :(得分:1)

在cassandra中尚未支持Collection框架上的这种高级功能。现在我想你必须执行两个查询来完成操作。

答案 1 :(得分:0)

从列表中删除元素的一行语句:

DELETE desserts[1] FROM table WHERE where food = 'steak';

供参考, 数据存储区的以下链接中的第6点: http://docs.datastax.com/en/cql/3.0/cql/cql_using/use_list_t.html

此链接详细讨论了cassandra中列表类型的使用。