【发布时间】:2017-12-31 07:14:45
【问题描述】:
我有一个模型,其字段为data,类型为JSONField,来自django.contrib.postgres.fields。 json结构是这样的:
{'aa': 1, 'bb': 2, 'cc': 4}
我想汇总 aa 和 cc 键的总和 - 所以在这种情况下,它将是 5。另外 - 我不能保证 aa 或 cc 将在 json 中。
这可能吗?如果是这样 - 我想按汇总数据排序。
示例:
- id: 1, data = {'aa': 1, 'bb': 2, 'cc':4}
- id: 2, data = {'aa': 3, 'bb': 2}
- id: 3, 数据 = {'cc': 7}
- id: 4, 数据 = {'bb': 7}
我想做一个查询,例如:MyModel.objects.aggregate(my_sum).order_by(my_sum)
聚合后查询集中的有序行将是:
- id:3
- id:1
- id:2
- id:4
谢谢!
【问题讨论】:
-
您拥有哪种类型的模型对象(实例或查询集)?
-
@NeErAjKuMaR - 我有一个查询集,我想根据模型字段聚合并按聚合值排序
-
但你说你需要来自 json 数据的键值总和
-
@NeErAjKuMaR - 我添加了一个示例来尝试阐明我的需求。如果这回答了您的问题,请告诉我。
-
您根据 aa 和 cc 键的总和对查询集进行排序,对吗?
标签: python django postgresql django-queryset django-jsonfield