选择子句中地图上的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查询的主要内容,如果未能解决你的问题,请参考以下文章
如何为 where 子句中的列编写具有不连续值的 Cassandra 查询