比方說,我有一個稱爲Orders的模型,它具有字段'date'作爲DateField,其中index_db = True。order_by vs. django模型中的聚合
給定一個日期,我想查找訂單中該日期的最近記錄。
我可以這樣寫:
prev_orders = Orders.objects.filter(date__lte=date).order_by('-date')
last_order = prev_orders[0]
或:
from django.db.models import Max
max_date = Orders.objects.filter(date__lte=date).aggregate(Max('date'))['date__max']
last_order = Orders.objects.get(date=max_date)
哪一個是更快?還有其他什麼理由可以選擇另一個?