django jsonField过滤以从指定键获取值列表

django jsonField filtering to get list of values from a specified key

我将数百万个 jsonFields 作为字段存储在我的 Django 模型中,结构如下:

对于对象 #1:

   {
     "key_1": value1
   }

对于对象 #2:

{
    "key_1": value2
}

等等...如何通过过滤简单地获取键 1 的值数组?

[value1, value2...]

您可以使用 KeyTransform,基本上它允许您在 JSONField 中提取一个键并用它注释您的查询集。 KeyTransform 不在 django 文档中。

from django.contrib.postgres.fields.jsonb import KeyTransform

list(Item.objects.annotate(key_1=KeyTransform("json_field", "key_1")).values_list("key_1", flat=True))