【问题标题】:Get value from specific map-key in Cassandra从 Cassandra 中的特定映射键获取值
【发布时间】:2022-02-11 00:17:01
【问题描述】:

例如。我在名为'table'primary key 'Id' 的表中的'users' 列下有一张地图。

如果地图看起来像这样,{{'Phone': '1234567899'}, {'City': 'Dublin'}},我想从 Cassandra 数据库中特定 'Id' 的键 'Phone' 中获取值。

【问题讨论】:

  • 欢迎来到 SO!请参阅“How to Ask”以及链接页面和“minimal reproducible example”。我们感谢您可能是新人,但我们确实希望您为此付出努力的证据。你在哪里搜索的?为什么没有帮助?如果是这样,您编写的用于测试所学内容的代码在哪里?如果你不写代码,为什么不呢?演示您遇到的问题的最少代码是什么,以及问题的解释,以及最少的输入数据和预期结果?没有它,就很难为您提供帮助,而且您似乎希望我们为您编写代码。

标签: cassandra cql


【解决方案1】:

是的,当使用 MAP 集合时,CQL 可以做到这一点。

为了测试这一点,我使用您上面提到的规格和数据创建了一个简单的表格:

> CREATE TABLE stackoverflow.usermap (
  id text PRIMARY KEY,
  users map<text, text>);

> INSERT INTO usermap (id,users)
  VALUES ('1a',{'Phone': '1234567899','City': 'Dublin'});

> SELECT * FROM usermap WHERE id='1a';

 id | users
----+-------------------------------------------
 1a | {'City': 'Dublin', 'Phone': '1234567899'}

(1 rows)

然后,我使用相同的 WHERE 子句进行查询,但更改了我的 SELECT 以仅拉回用户的电话:

> SELECT users['Phone'] FROM usermap WHERE id='1a';

 users['Phone']
----------------
     1234567899

(1 rows)

【讨论】:

  • 谢谢亚伦 :)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-10
  • 1970-01-01
  • 2021-05-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-25
相关资源
最近更新 更多