Ruby on rails 查询JSON字段以按变量类型获取产品变量
因此,我正在开发一个电子商务应用程序,我有一个名为product variants的表,其中我使用jsonb数据类型动态存储产品变体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"} 我希望以这样一种方式查询变量,以获得特定产品的特定变量的所
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”],“颜色”:[“红色”,“黄色”]}
是您需要的吗?