Использование списка в фильтре GQL
Как я могу сделать выбор в GQL, используя список в качестве фильтра.
Если у меня есть класс
public class Obj{
@Persistent
private Long name;
}
Как я могу получить все объекты, которых нет в списке?
1 ответ
Решение
Вы можете получить результаты по цепочке всех фильтров вместе.
SELECT * FROM User where email != 'xxx@gmail.com' and email != 'yyy@gmail.com' and email != 'zzz@gmail.com'
Код Python
q = User.all()
for i in ilist:
q = q.filter("email = ", i)
Но вам может понадобиться знать, что для такого рода запросов существуют некоторые ограничения.
Примечание: операторы IN и!= Используют несколько запросов за кулисами. Например, оператор IN выполняет отдельный базовый запрос хранилища данных для каждого элемента в списке. Возвращенные объекты являются результатом перекрестного продукта всех базовых запросов к хранилищу данных и дедуплицируются. Для каждого отдельного запроса GQL допускается не более 30 запросов к хранилищу данных.