json のようなツリーを含む jsonb 列「データ」があります。例:
{
"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'