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

jez*_*zuz 7 cassandra cql3

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

 select * from users where user_id not in ("mikko");
Run Code Online (Sandbox Code Playgroud)

我试过"不在",这是回应:

Bad Request: line 1:35 no viable alternative at input 'not'
Run Code Online (Sandbox Code Playgroud)

Zan*_*son 10

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

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

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