【问题标题】:Django jsonfield, is it possible to filter with json array value length?Django jsonfield,是否可以使用json数组值长度进行过滤?
【发布时间】:2020-11-27 06:54:02
【问题描述】:

假设我有一个带有数据的 jsonfield

from django.contrib.postgres.fields import JSONField

class Foo(models.Model):
   json_field = JSONField(default=dict)

json_field = {
  'bar': [1,2,3,4]
}

我想过滤 bar 的数组长度大于 3 的数据

类似于以下内容,Foo.objects.filter(json_field__bar__length__gt=3)

【问题讨论】:

  • 请分享你之前的模型课,可以做你所看重的
  • 我刚做了。 @NathanIngram
  • 是的,在您的模型类中再创建一个字段,每次设置长度为 json_field...请查看@Ajay Lingayat 答案...

标签: django jsonfield


【解决方案1】:

你可以试试这个:

在模型中再创建一个字段,即json_field_bar_length

class Foo(models.Model):
    ....
    json_field_bar_length = models.IntegerField(default=0)

并在其中保存json_field时输入json_field['bar']的长度并检查长度是否更大。

【讨论】:

    猜你喜欢
    • 2021-08-23
    • 2018-08-22
    • 1970-01-01
    • 2016-07-23
    • 2018-04-09
    • 1970-01-01
    • 2018-11-06
    • 2022-11-30
    • 1970-01-01
    相关资源
    最近更新 更多