Использование списка в фильтре 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 запросов к хранилищу данных.

Другие вопросы по тегам