9

我想每个玩过 Cassandra 的人都已经读过这篇文章了。

我试图在 CassandraCli 上创建我的模式,但我遇到了很多问题,有人可以指导我正确的方式吗?我正在尝试创建一个类似的结构,例如文章中的 Comments 列族。

在 CassandraCli 终端中,我输入:

create column family posts with column_type = ‘Super’ and comparator = ‘AsciiType’ and subcomparator = TimeUUIDType;

它工作正常,没有文档告诉我,如果我添加一个 column_metadata 属性,这些属性将用于超级列,因为我的列族是超级类型,我找不到它是否为真,所以:

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类型的子比较器,而body是一个字符串,它应该是一个timeuuid,所以我的列在timeuuid类型的超级列中如何保存具有字符串类型名称的列作为文章的评论被创建?

谢谢

4

4 回答 4

5

我认为您切换了 compare_type 和 subcomarator_type 适用的内容。在超列族中,comparator_type 应用于超列名,subcombparator_type 应用于子列名。

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

于 2011-01-14T01:25:45.357 回答
1

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

正确答案应该是这样。

:p

于 2011-10-26T22:47:08.627 回答
0

你试过引用'body'吗?

set posts['post1'][timeuuid()]['body'] = ‘Hello I am Goku!’;
于 2011-01-13T23:48:54.640 回答
0

我试过了:

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

有效...

于 2011-08-09T10:06:05.820 回答