2010-03-10 2 views

ответ

3

Там нет никакого способа сделать это эффективно в App Engine. Вы должны просто выбрать все без фильтра и отфильтровать любые соответствующие объекты в вашем коде.

1

Это теперь поддерживается с помощью GQL запроса

«В» и «! =» Операторы в среде выполнения Python фактически реализованы в SDK и перевести несколько запросов «под капотом».

Например, запрос "SELECT * FROM People WHERE имя IN ('Bob', 'Джейн')" переводится на два запроса, что эквивалентно запуску "SELECT * FROM People WHERE имя = 'Bob'" и "SELECT * FROM People WHERE name = 'Jane'" и слияние результатов. Объединение нескольких делений умножает количество необходимых запросов, поэтому запрос «ВЫБЕРИТЕ * ОТ людей WHERE name IN (« Боб »,« Джейн ») И возраст! = 25» генерирует в общей сложности четыре запроса для каждого из возможные условия (возраст меньше или больше 25, а имя - «Боб» или «Джейн»), то объединяет их в единый результирующий набор.

Источник: appengine blog

Смежные вопросы