3

PostgreSQL 9.4 の JSONB 型をどこまで使えるのかよくわかりません

たとえば、JSON フィールドに次を格納するとします。

 id |                 data                 
----+--------------------------------------
  1 | {"a": ["1", "2"]}
  2 | {"b": ["1", "5"]}
  3 | {"a": ["1", "3", "8"], "c": ["1", "2"]}
  4 | {"a": ["7", "8"]}

リストに値「1」を持つキー「a」を持つ JSONB フィールドの行を選択するにはどうすればよいですか?

この例では、結果は次のようになります。

 id |                 data                 
----+--------------------------------------
  1 | {"a": ["1", "2"]}
  3 | {"a": ["1", "3", "8"], "c": ["1", "2"]}
(2 rows)

はいの場合、djangoでどのように使用しますか?

ありがとう

4

3 に答える 3

0

次のクエリを使用して取得できます。

yourModel.objects.filter(data__contains={"a": [*]})

あなたはこれを見ることができます

于 2016-04-22T06:52:59.207 に答える
0

最善の策は、Django 1.7 以降を使用してカスタムのルックアップと変換を作成することです。必要な SQL を生成するいくつかのクラスを作成する必要があります。

もう 1 つのオプションは、この機能が Django に組み込まれるのを待つことです。このためのキックスターター プロジェクトがあります。https://www.kickstarter.com/projects/mjtamlyn/improved-postgresql-support-in-djangoを参照してください。

于 2015-02-02T15:00:33.900 に答える
0

問題を解決するクエリは次のとおりです。

select *
from mytable
where data -> 'a' ? '1'
于 2015-06-16T06:11:32.560 に答える