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))
我将数百万个 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))