Django ORM - 聚合查询
引言
Django 是一个功能强大的 Python Web 框架,它提供了丰富的内置工具和功能来简化 Web 开发过程。Django ORM(Object-Relational Mapping)是 Django 框架中用于数据库操作的一个核心组件。它允许开发者以面向对象的方式来操作数据库,极大地提高了开发效率。聚合查询是 Django ORM 的一个重要功能,它能够帮助开发者对数据库数据进行统计和分析。
聚合查询概述
聚合查询(Aggregation)是数据库中用于对数据进行统计、汇总和计算的方法。在 Django ORM 中,聚合查询可以通过annotate()和aggregate()方法来实现。
annotate()方法
annotate()方法可以对查询集(QuerySet)中的每个对象添加一个聚合字段。这个字段可以是数据库中的字段,也可以是计算字段。
from django.db.models import Count, Avg queryset = MyModel.objects.annotate(num_comments=Count('comment')).filter(num_comments__gte=3)在上面的示例中,我们计算了每个MyModel实例对应的评论数量,并且只选择了评论数量大于等于 3 的实例。
aggregate()方法
aggregate()方法用于对查询集中的所有对象进行聚合操作,并返回一个包含聚合结果的字典。
from django.db.models import Count, Avg queryset = MyModel.objects.a