如何检查给定键是否在 CQL 中的映射结构中

How to check whether a given key is in a map structure in CQL

我正在尝试使用 cql 更新在给定键的映射中存储的值。谁能告诉我该怎么做?以下是我的table:

create table game(game_id uuid, game_name text, participant_id_name map<uuid, text>, PRIMARY KEY (game_id));
create index on game(participant_id_name);

现在我有给定参与者的 uuid 并想更新 his/her 名称,但我不知道 game_id。我想知道如何检查参与者是否属于 participant_id_name 列,然后更新名称。

我不认为你的数据模型是最佳的,因为你正在尝试做,所以我提出以下建议:

create table game(game_id uuid, game_name text, participant_id int, participant_id_name text, PRIMARY KEY (game_id), participant_id);

使用此 table,您有一个分区键 game_id 和一个聚类列 participant_id,因此分区将包含按以下命令排序的 game_id 的所有内容participant_id 列。我相信这对您要尝试做的事情很有意义。我建议让应用程序在插入人名时提供一个整数,而不是使用数据库为 participant_id 生成的唯一 ID,这样您就可以知道这两个数据。

(请注意,我没有完整的信息,并且正在尽最大努力提供所提供的信息。)