0

クエリの進行に合わせてフィルターを変更できるモデルに Django クエリを作成したいと考えています。

Activityクエリを実行しているモデルがあります。各オブジェクトにはフィールドがあり、日付範囲にわたってpostal_code配列に格納されている複数の郵便番号を照会しています。postal_codes_to_query郵便番号ごとにオブジェクトが均等に分散されるようにしたいと考えています。私のデータベースには何百万ものアクティビティがあるため、制限を付けてクエリを実行すると、activities早い段階で一致する郵便番号のみを受け取りpostal_codes_to_queryます。私の現在のクエリは以下のとおりです。

Activity.objects.filter(postal_code__in=postal_codes_to_query).filter(start_time_local__gte=startTime).filter(start_time_local__lte=endTime).order_by('start_time_local')[:10000]

たとえば 20 個の郵便番号を検索している場合、理想的には 10000 を受け取り、照会した郵便番号ごとactivitiesに 500を受け取りたいと考えています。activities

これはDjangoで可能ですか? そうでない場合、これを実現するために作成できるカスタム SQL はありますか? 問題が発生した場合に備えて、Heroku Postgres データベースを使用しています。

4

1 に答える 1