cassandra關於集合型別的操作

2021-08-03 20:58:25 字數 1440 閱讀 7135

cassandra的幾種集合型別(list、set、map)增強了資料庫的表現力,這幾種資料型別用的很方便。我簡單總結了一下這幾種型別的使用方法。

社會我二哥,人狠話不多,直奔主題

舉例:

create table test(

a int,

b list,

c set,

d map,

primary key(a)

);

插入使用下面的形式

insert into test(a,b,c,d) values(1,['listtext1','listtext2'],,);

第一: 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+ where a=1;

刪除元素

update test set c=c- where a=1;

第三:map型別

增加元素

update test set d[『mapkey3′] =』mapvalue3』 where a=1;

或者 update test set d=d+ 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;

cassandra關於集合型別的操作

舉例 create table test a int,b list,c set,d map,primary key a 插入使用下面的形式 insert into test a,b,c,d values 1,listtext1 listtext2 第一 list型別 增加元素 update test...

cassandra關於集合型別的操作

舉例 create table test a int,b list,c set,d map,primary key a 插入使用下面的形式 insert into test a,b,c,d values 1,listtext1 listtext2 第一 list型別 增加元素 update test...

關於cassandra資料庫

nosql資料庫 基於列的資料庫 高度可擴充套件的高效能分布式資料庫 cassandra的特點 1 彈性可擴充套件。2 始終基於架構,沒有單點故障。3 快速線性效能。4 靈活的資料儲存,支援結構化,半結構化和非結構化。5 便捷資料分發,多資料中心間複製資料。6 支援事務。7 快速寫入。cassand...