Cassandra 如果没有“允许筛选”,我如何在CQL中使用条件查询?

Cassandra 如果没有“允许筛选”,我如何在CQL中使用条件查询?,cassandra,cql,Cassandra,Cql,我是CQL新的学习者。 我有餐厅的桌子。 通过实现“desc restaurants”,它以 如何在不使用“允许筛选”的情况下运行以下查询, 从borough='brooklyn'的餐厅中选择名称 为了能够在不使用“允许筛选”的情况下运行查询,需要哪些步骤 非常感谢。对于Cassandra CQL,您需要采用基于查询的建模方法。这意味着您将需要一个专门设计用于按自治区查询的表 一个好问题是,为什么在当前的表设计中id是唯一的主键?您必须支持按id查询吗?如果不是,那么你就不需要那张桌子了。但是

我是CQL新的学习者。 我有餐厅的桌子。 通过实现“desc restaurants”,它以

如何在不使用“允许筛选”的情况下运行以下查询, 从borough='brooklyn'的餐厅中选择名称

为了能够在不使用“允许筛选”的情况下运行查询,需要哪些步骤


非常感谢。

对于Cassandra CQL,您需要采用基于查询的建模方法。这意味着您将需要一个专门设计用于按自治区查询的表

一个好问题是,为什么在当前的表设计中id是唯一的主键?您必须支持按id查询吗?如果不是,那么你就不需要那张桌子了。但是,由于borough不是唯一的,所以将其他列聚集到主键定义中是有意义的

我会这样说:

CREATE TABLE stackoverflow.restaurants_by_borough (
    borough text,
    name text,
    id int,
    buildingnum text,
    cuisinetype text,
    phone text,
    street text,
    zipcode int,
    PRIMARY KEY (borough, name, id)
) WITH CLUSTERING ORDER BY (name ASC, id ASC);
现在,此查询将起作用:

select name from restaurants_by_borough
where borough = 'brooklyn';
它将返回每个行政区的数据,按名称排序。此外,如果任何两家餐厅的名称相同,那么在布鲁克林可能会有不止一家麦当劳。为了确保其独特性,钥匙的末尾会添加id