2

django 1.9(使用postgresdb)中,我们使用JSONField(在模型中),其条目如下所示:

**Entry 1**(in a row of that table):
data: {
  "key1": "value1",
  "key2": "value2",
  "key3": "value3",
  "key4": "value4"
}

**Entry 2**(in a row of that table):
data: {
  "key5": "value4",
  "key6": "value2",
  "key7": "value2",
  "key8": "value4"
}

我想查询值,例如 data__value__contains='value4'

Django 支持“keys”(has_key, has_any_keys, has_keys) 相关查询

查询上述需求的好方法是什么?

4

1 回答 1

0

HStoreField使用 a而不是 a怎么样JSONField,这样您就可以访问查找。

MyModel.objects.filter(data__values__contains='value4')

Django 文档中所述,JSON 字段仅具有以下查找:

遏制和关键操作¶

JSONField 与 HStoreField 共享与包含和键相关的查找。

  • 包含(接受任何 JSON 而不仅仅是字符串字典)
  • contains_by(接受任何 JSON 而不仅仅是字符串字典)
  • has_key
  • has_any_keys
  • has_keys
于 2016-10-12T22:24:00.857 回答