如何在cql3查询中执行“not in”过滤器选择?

时间:2013-08-28 21:22:34

标签: cassandra cql3

我需要获取没有特定键的行。 样品:

 select * from users where user_id not in ("mikko");

我试过“不在”,这是回应:

Bad Request: line 1:35 no viable alternative at input 'not'

1 个答案:

答案 0 :(得分:10)

“not in”不是CQL中支持的操作。 Cassandra的核心仍然是基于关键的索引行。所以查询基本上与“select * from users”相同,因为你必须遍历每一行并弄清楚它是否与in匹配。如果你想做那种类型的查询,你需要设置一个地图减少工作以执行它。

使用Cassandra时,您实际想要做的是对数据模型进行反规范化,以便应用程序执行的查询最终查询单个分区(或只是几个分区)以获得结果。

还可以找到一些关于Cassandra数据建模的精彩网络研讨会和讲座