Below is the table created in Cassandra 3.0 using YCQL(yugabyte):
> DESCRIBE TABLE data;
CREATE TABLE store.data (
id int PRIMARY KEY,
details jsonb
) WITH default_time_to_live = 0
AND transactions = {'enabled': 'false'};
Below is the value of details
column in first row:
[
{
"key1": "domain_1",
"key2": "range_1",
"key3": "somevalue"
},
{
"key1": "domain_2",
"key2": "range_4",
"key3": "somevalue"
},
{
"key1": "domain_1",
"key2": "range_2",
"key3": "somevalue"
},
{
"key1": "domain_2",
"key2": "range_5",
"key3": "somevalue"
},
{
"key1": "doman_1",
"key2": "range_3",
"key3": "somevalue"
},
{
"key1": "domain_2",
"key2": "range_6",
"key3": "somevalue"
},
{
"key1": "doman_1",
"key2": "range_7",
"key3": "somevalue"
},
{
"key1": "domain_1",
"key2": "range_8",
"key3": "somevalue"
},
{
"key1": "domain_1",
"key2": "range_2",
"key3": "somevalue"
}
]
Below is the value of details
column in second row:
[
{
"key1": "domain_7",
"key2": "range_13",
"key3": "somevalue"
},
{
"key1": "domain_2",
"key2": "range_12",
"key3": "somevalue"
},
{
"key1": "domain_7",
"key2": "range_14",
"key3": "somevalue"
},
{
"key1": "domain_7",
"key2": "range_15",
"key3": "somevalue"
},
{
"key1": "doman_2",
"key2": "range_10",
"key3": "somevalue"
},
{
"key1": "domain_2",
"key2": "range_9",
"key3": "somevalue"
},
{
"key1": "doman_7",
"key2": "range_8",
"key3": "somevalue"
},
{
"key1": "domain_2",
"key2": "range_15",
"key3": "somevalue"
},
{
"key1": "domain_7",
"key2": "range_20",
"key3": "somevalue"
}
]
So, value in details
is array of objects.
Using ycql query,
From first row in table, access any specific(say second element) of the array with query select details->1->'key_1' as key_1 from data WHERE id=1
how to access all the elements of the array(at one go) to retrieve key_1
value?