我有一个 jsonb 列“数据”,其中包含类似 json 的树,例如:
{
"libraries":[
{
"books":[
{
"name":"mybook",
"type":"fiction"
},
{
"name":"yourbook",
"type":"comedy"
}
{
"name":"hisbook",
"type":"fiction"
}
]
}
]
}
我希望能够使用根据类型从缩进的“书”json中选择一个值的查询来进行索引。所以所有的书名都是虚构的。
我能够使用 jsonb_array_elements 连接查询来做到这一点,但据我所知,这不会使用 GIN 索引进行优化。我的查询是
select books->'name'
from data,
jsonb_array_elements(data->'libraries') libraries,
jsonb_array_elements(libraries->'books') books,
where books->>'type'='grading'