django - django jsonField 过滤以从指定键中获取值列表
问题描述
我将数百万个 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))
推荐阅读
- apache-spark - 当前摄取的 Apache Hudi 提交 ID
- java - JBoss Wildfly 9.0 ArrayIndexOutOfBoundException [asm 3.1]
- vb.net - 随机文件将记录添加到文本文件,但它们不是显示在不同的行上,而是写在同一行上
- python - 如何在 Python for 循环中绘制一个月的平均线?
- groovy - 在 Groovy 中检查变量是否包含字符 az 或 AZ
- java - 如何在 Spring Boot JPA/Hibernate 中获取 ddl 自动生成的脚本?
- java - 插件已经初始化
- javascript - 当操作的长度未知时定期运行操作
- android-studio - 如何解决汇编调试问题。?
- php - 试图将主控制器方法划分为两个单独的方法