选择子句中地图上的cassandra查询

Posted

技术标签:

【中文标题】选择子句中地图上的cassandra查询【英文标题】:cassandra query on map in select clause 【发布时间】:2015-05-01 21:28:59 【问题描述】:

我是 cassandra 的新手,我正在尝试从数据库中读取包含值的行

站点 ID |国家 |一些地图

1 |美国 | a:b, x:z


2 |公关 | a:b, x:z

我还使用 create index on columnfamily(keys(someMap)); 在表上创建了一个索引;

但是当我从 siteId=1 和 someMap 包含键 'a' 的表中选择 * 查询时

它返回一个完整的地图


1 |美国 | a:b, x:z

有人可以帮我看看我应该怎么做才能获得价值

1 |美国 | a:b

【问题讨论】:

【参考方案1】:

您不能:即使在内部将Map|List|Set 的每个条目存储为一列,您也只能检索整个集合,但不能检索其中的一部分。您不是要求 cassandra 给我包含 X 的映射条目,而是映射包含 X 的行。

HTH, 卡罗

【讨论】:

这意味着我们无法获得地图包含特定键的行??? 您可以获得地图包含特定值的行,但您无法从地图中检索值的子集。正如您在测试中看到的那样,检索到的地图始终是完整的。

以上是关于选择子句中地图上的cassandra查询的主要内容,如果未能解决你的问题,请参考以下文章

Cassandra 数据模型

Cassandra Where子句中的IN查询

如何为 where 子句中的列编写具有不连续值的 Cassandra 查询

在 Cassandra 中按地图值查询

带有 Spring Data 和 Cassandra @Query 的 IN 子句

如何在 Cassandra 中使用“LIKE”子句