使用 cql Cassandra 中的映射值进行过滤
Filtering by using map value in cql Cassandra
我正在尝试 select 通过过滤地图列上的值来记录。
name (text) | last (text) | languages(map<text:text>)
john | stith | {12:English, 123:Spanish}
Jane | Doe | {34:Italian, 123:Spanish}
我正在尝试 select 记录只有意大利语作为值。但在文档上只显示了如何通过密钥获取记录。
通过按意大利语过滤,我应该在上面的示例中找到 Jane Doe。我怎样才能完成过滤?
您需要为地图的值创建索引。
假设创建了地图值索引,使用地图中的值过滤数据
SELECT * FROM table WHERE languages CONTAINS 'Italian';
为值创建索引
CREATE INDEX mymapvalues ON tableName(languages);
查看此处了解更多信息
https://docs.datastax.com/en/cql/3.1/cql/ddl/ddlIndexColl.html
我正在尝试 select 通过过滤地图列上的值来记录。
name (text) | last (text) | languages(map<text:text>)
john | stith | {12:English, 123:Spanish}
Jane | Doe | {34:Italian, 123:Spanish}
我正在尝试 select 记录只有意大利语作为值。但在文档上只显示了如何通过密钥获取记录。
通过按意大利语过滤,我应该在上面的示例中找到 Jane Doe。我怎样才能完成过滤?
您需要为地图的值创建索引。 假设创建了地图值索引,使用地图中的值过滤数据
SELECT * FROM table WHERE languages CONTAINS 'Italian';
为值创建索引
CREATE INDEX mymapvalues ON tableName(languages);
查看此处了解更多信息 https://docs.datastax.com/en/cql/3.1/cql/ddl/ddlIndexColl.html