2

如何使用列表作为过滤器在 GQL 中进行选择。

如果我有课

public class Obj{

    @Persistent
    private Long name;

}

如何获取名称不在列表中的所有 Obj?

4

1 回答 1

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 个数据存储查询。

于 2011-07-05T18:10:29.113 回答