Агрегация django в App Engine
Я пытаюсь вычислить сумму списка записей. У меня есть 3 варианта
- customer= Customer.objects.all() Затем перебрать этот список и вычислить сумму
- Использование агрегации Total = Customer.objects.aggregate(Sum('amount'))
- Использование Annotate Customer.objects.annotate(Sum('amount'))
Мой вопрос
1. Аннотируйте и агрегируйте, какой из них быстрее?
2. Я не могу использовать агрегат в Django, он выбрасывает Эта база данных не может использовать агрегацию. Я использую хранилище данных из Google App Engine
1 ответ
Решение
3 не вариант. Аннотирование применяется к каждому объекту, поэтому вам все равно придется суммировать "сумму" через python.
Поскольку вы говорите, что агрегация невозможна, у вас остается один выбор:
total = sum((x.amount for x in Customer.objects.all())
Или перейти на сырой GQL, который я не знаю:D