我是这个使用nodejs的cassandra数据库的新手。
我有user_activity表。在此表中,数据将根据用户活动插入。
我也有一些用户列表。我需要获取特定用户和最后记录中的数据。
我没有兴趣将查询放入for循环中。有任何其他想法来实现这一目标吗?
示例代码:
var userlist = ["12", "34", "56"];
var query = 'SELECT * FROM user_activity WHERE userid IN ?';
server.user.execute(query, [userlist], {
prepare : true
}, function(err, result) {
console.log(results);
});
如何获取最后一个用户列表?
示例:
user id = 12 - need to get last record;
user id = 34 - need to get last record;
user id = 56 - need to get last record;
我需要获得这3条记录。 表格架构:
CREATE TABLE test.user_activity (
userid text,
ts timestamp,
clientid text,
clientip text,
status text,
PRIMARY KEY (userid, ts)
)
答案 0 :(得分:2)
如果您使用IN
过滤器,则无法进行此操作。
如果是单个user_id过滤器,您可以按顺序应用。当然,您需要一个用于插入/更新时间的列。所以查询将是这样的:
SELECT * FROM user_activity WHERE user_id = 12 ORDER BY updated_at LIMIT 1;
答案 1 :(得分:1)
您可以输入N
值来获取记录数
SELECT * FROM user_activity WHERE userid IN ? ORDER BY id DESC LIMIT N