映射Cassandra超级列

映射Cassandra超级列,cassandra,super-columns,Cassandra,Super Columns,我猜每个和卡桑德拉玩过的人都读过这篇文章 我试图在CassandraCli上创建我的模式,但是我有很多问题,有人能给我指引正确的方向吗?我试图创建一个类似的结构,就像文章中的注释列族 在CassandraCli终端I中,类型: create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = TimeUUIDType; 它工作正常,没有文档告诉我,如果我添

我猜每个和卡桑德拉玩过的人都读过这篇文章

我试图在CassandraCli上创建我的模式,但是我有很多问题,有人能给我指引正确的方向吗?我试图创建一个类似的结构,就像文章中的注释列族

在CassandraCli终端I中,类型:

create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = TimeUUIDType;
它工作正常,没有文档告诉我,如果我添加一个column\u元数据属性,这些属性将用于超级列,因为我的列族是super类型,我找不到它是否为true,因此:

create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = ‘TimeUUIDType’ and column_metadata = [{column_name:'body'}];
我试图创建与本文的注释列系列相同的内容,但是当我尝试填充

set posts['post1'][timeuuid()][body] = ‘Hello I am Goku!’;
我得到:

无效的UUID字符串:正文

我想,因为我选择了timeuuid类型的子比较程序,并且主体是字符串,所以它应该是timeuuid,那么,在创建文章注释时,超级列(timeuuid类型)中的列如何能够保存具有字符串类型名称的列呢


谢谢

你试过引用
的“body”

set posts['post1'][timeuuid()]['body'] = ‘Hello I am Goku!’;

我想您切换了comparator类型和subcomparator类型的应用。在超级列族中,comparator_类型应用于超级列名称,subcombparator_类型应用于子列名称

切换比较器类型,您的第一个示例应该可以工作。

我尝试了:

set posts[1][timeuuid()]['body'] = 'Hello I am Goku!';

它起作用了…

设置posts[1][timeuuid()][utf8('body')]=“你好,我是小悟空!”

正确答案应该是


:p

+1代表1询问有关卡桑德拉的问题的人。看到有人对SQL以外的东西感兴趣真是令人耳目一新。。。