У меня есть список адресов в виде строкового типа, и я хотел бы найти все события, значение местоположения которых совпадает с содержимым списка. Поскольку у меня есть тысячи таких записей, использование 'IN' с фильтром не будет работать, поскольку я превысил ограничение в 30 элементов / выборка.
Вот как я пытаюсь сделать фильтр:
# addresses come in as list of string items
addresses = ['123 Main St, Portland, ME', '500 Broadway, New York, NY', ...];
query = Event.all();
query.filter('location IN ', addresses);
# above causes the error:
<class 'google.appengine.api.datastore_errors.BadArgumentError'>:
Cannot satisfy query -- too many subqueries (max: 30, got 119).
Probable cause: too many IN/!= filters in query.
Мои классы моделей:
class Event(GeoModel):
name = db.StringProperty();
location = db.PostalAddressProperty();
Есть ли лучший способ найти все записи, которые соответствуют определенным критериям?