聊天-使用Cassandra的应用程序(数据模型)

时间:2018-08-23 11:37:46

标签: cassandra nosql chat facebook-messenger messenger

我需要使用cassandra在用户之间建立聊天。

我创建了这样的表chat_messages:

create table chat_messages(
    user_name text,
    to_user text,
    content text,
    content_id uuid,
    created_at timestamp,
    primary key((user_name,to_user),created_at)
);

我想通过一个选择在两个用户之间获取消息。

insert into chat_messages(user_name, to_user, content, content_id, created_at) values('u1','u2','hi u2',uuid(),toTimestamp(now()));
insert into chat_messages(user_name, to_user, content, content_id, created_at) values('u2','u1','hi u1',uuid(),toTimestamp(now()));

我想获得hi u1 hi u2

1 个答案:

答案 0 :(得分:0)

使用实际的表结构,您可以使用:

SELECT content
FROM chat_messages 
WHERE user_name IN ('u1', 'u2') 
  AND to_user IN ('u1', 'u2');

但是请小心在IN子句中使用WHERE,因为将查询多个节点。