cassandra关于集合类型的操作

Cassandra的几种集合类型(list、set、map)增强了数据库的表现力,这几种数据类型用的很方便。我简单总结了一下这几种类型的使用方法。
社会我二哥,人狠话不多,直奔主题

举例:
create table test(
	a int, 
	b list<text>, 
	c set<text>, 
	d map<text,text>, 
	primary key(a)
);

插入使用下面的形式
insert into test(a,b,c,d) values(1,['listtext1','listtext2'],{'settext1','settext2'},{'mapkey1':'mapvale2','mapkey2':'mapvalue2'});  

第一: list类型
增加元素:
update test set b=b+[‘listtext3′,’listext4’] where a=1;
删除第i个元素:
你可以使用
delete b[i] from test where a=1;
或者 update test set b[i]=null where a=1;
注:后者的方法是可行的,不过官方文档没有说明
删除内容为listtext1和listtext2的元素
update test set b = b-[‘listtext1′,’listtext2’] where a=1;

第二: Set类型
增加元素
update test set c=c+{‘settext3′,’settext4’} where a=1;
删除元素
update test set c=c-{‘settext1′,’settext2’} where a=1;

第三:Map类型
增加元素
update test set d[‘mapkey3′] =’mapvalue3’ where a=1;
或者 update test set d=d+{‘mapkey3′:’mapvalue3′,’mapkey4′:’mapvalue4’} where
a=1;
注:后者的方法是可行的,不过官方文档没有说明
删除元素
delete d[‘mapkey3’] from test where a=1;
或者 update test set d[‘mapkey3’]=null where a=1;
注:后者的方法是可行的,不过官方文档没有说明

cassandra中集合类型不能做主键,不能建索引。
这种集合类型做为查询条件很弱,只有map可以使用元素作为查询条件,而且必须加ALLOW FILTERING
select * from test where a=1 and d['mapkey1']='mapvale2' ALLOW FILTERING;




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值