根据dataStax collections doc,始终读取一个集合。在引擎盖C*下,将收集作为动态列的列表。例如
books map<text, int>
将是
的商店{name=books:book_name_1, value=2001},
{name=books:book_name_2, value=2002}
为什么不可能从地图中选择一个特定键?
那是什么JSON结构?(这不是有效的JSON。)这不是将地图存储在Cassandra内部的列中的方式。
无论如何,您可能正在寻找以下内容:http://docs.datastax.com/en/cql/3.1/cql/ddl/ddl_query_collection_collection_c.html
cassandra整体读取每一列。
Cassandra仅允许仅在主键上的子句中,如果您需要通过普通列过滤,则必须在其上创建索引。
对于您的情况,您需要将地图分开并分为两个字段,然后将键作为主键
例如:
CREATE TABLE books(
key text,
value int,
primary key(key)
);
现在您可以通过键查询以获取值;
SELECT value FROM books WHERE key = ?