Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 查询JSON字段以按变量类型获取产品变量_Ruby On Rails_Postgresql_E Commerce_Jsonb - Fatal编程技术网

Ruby on rails 查询JSON字段以按变量类型获取产品变量

Ruby on rails 查询JSON字段以按变量类型获取产品变量,ruby-on-rails,postgresql,e-commerce,jsonb,Ruby On Rails,Postgresql,E Commerce,Jsonb,因此,我正在开发一个电子商务应用程序,我有一个名为product variants的表,其中我使用jsonb数据类型动态存储产品变体 variants: {"size": "20","color": "red"},{"size": "30","color": "yellow"} 我希望以这样一种方式查询变量,以获得特定产品的特定变量的所

因此,我正在开发一个电子商务应用程序,我有一个名为product variants的表,其中我使用jsonb数据类型动态存储产品变体

variants: {"size": "20","color": "red"},{"size": "30","color": "yellow"}
我希望以这样一种方式查询变量,以获得特定产品的特定变量的所有值,如下所示:

size: ["20","30"],color: ["red","yellow"]

我已经尝试了很多事情,但是没有得到我想要的结果

[{"size": "20", "color": "red"}, {"size": "30", "color": "yellow"}]

PostgreSQL查询:

select jsonb_object_agg(a, bs) from (
    select a, jsonb_agg(b) as bs from (
        select (jsonb_each(o)).* from (
            select v from jsonb_array_elements(
                '[{"size": "20", "color": "red"}, {"size": "30", "color": "yellow"}]'::jsonb
            ) t(v)
        ) t(o)
    ) tt(a, b)
    group by a
) ttt

将JSONB从转换为

[{"size": "20", "color": "red"}, {"size": "30", "color": "yellow"}]

PostgreSQL查询:

select jsonb_object_agg(a, bs) from (
    select a, jsonb_agg(b) as bs from (
        select (jsonb_each(o)).* from (
            select v from jsonb_array_elements(
                '[{"size": "20", "color": "red"}, {"size": "30", "color": "yellow"}]'::jsonb
            ) t(v)
        ) t(o)
    ) tt(a, b)
    group by a
) ttt

你确定关于JSONB的格式吗…*是的!我确定数据类型!从:
[{size:“20”,“color:“red”},{“size:“30”,“color:“yellow”}
转换到
{size:[“20”,“30”],“color:[“red”,“yellow”]}
是您需要的吗?您确定JSONB的格式吗?*是的!我确定数据类型!从:
[{“size:“20”,“color:“red”},{“size:“30”,“color:“yellow”}转换
{“大小”:[“20”,“30”],“颜色”:[“红色”,“黄色”]}
是您需要的吗?