テーブルitem
には、タイプJSONBのdata
というフィールドがあります。私は 'スーパー'と等しいテキストを持つすべてのアイテムを照会したいと思います。私はこれを行うことによって、現在、これを行うにしようとしています:Django 1.9で複雑なJSONBフィールドを照会する方法
Item.objects.filter(Q(data__areas__texts__text='Super'))
Djangoのデバッグツールバーは、このために使用されるクエリがある報告されています
WHERE "item"."data" #> ARRAY['areas', 'texts', 'text'] = '"Super"'
しかし、私は任意のマッチングをバック届きません結果。 Djangoを使ってこれをどのように問い合わせることができますか? Djangoでこれができない場合は、PostgreSQLでこれをどのように問い合わせることができますか?ここで
がdata
フィールドの内容の例です:
{
"areas": [
{
"texts": [
{
"text": "Super"
}
]
},
{
"texts": [
{
"text": "Duper"
}
]
}
]
}
' Item.objects.filter(data__areas__0__texts__0__text = 'スーパー')を助けることを願っています私はそれが配列のすべての要素を検索したいので。生のクエリは私が探しているものですが、ありがとうございます。残念なことに、私はDjangoを使ってこれを行うことはできませんが、もし車が自分自身を運転できるなら、希望があると思います;) – Chad