查询 JSON 字段以按变体类型获取产品变体

Querying a JSON field to get product variants by variant type

所以我正在开发一个电子商务应用程序,我有一个 table 称为产品变体,我在其中使用 jsonb datatype.My 动态存储产品变体 datatype.My 数据是这样存储的!

variants: {"size": "20","color": "red"},{"size": "30","color": "yellow"}

我想以这样的方式查询变体,以便获得特定产品的特定变体的所有值,如下所示:

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

我已经尝试了很多东西,但都没有得到我想要的结果!

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

{"size": ["20", "30"], "color": ["red", "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