似乎没有任何关于如何在GQL查询的where语句中使用布尔参数查询数据存储区的文档。
我一直在尝试基于布尔列查询AppEngine数据存储区,但它没有在AppEngine仪表板的数据查看器中返回任何结果。
我尝试了以下内容:
SELECT * FROM users WHERE active=TRUE
SELECT * FROM users WHERE active=True
非常感谢任何帮助。
答案 0 :(得分:4)
根据文档,GQL布尔比较的正确语法是
SELECT * FROM users WHERE active = TRUE
请参阅https://developers.google.com/appengine/docs/python/datastore/gqlreference
现在,如果您没有得到结果,那么active
属性对于所有实体都不是True,或者属性active
实际上不是bool类型。
为了完整起见,我使用预期结果执行了以下查询。
SELECT * FROM Plant where flowering = TRUE
答案 1 :(得分:0)
请检查您是否对您正在过滤的字段有索引(在您的情况下,请确保您已经索引"活动"属性"用户"实体)
我在最后尝试了这个实验,并且看到如果没有索引,数据存储区也不会返回任何结果。 Google的文档对此进行了解释:Datastore Indexes,相关段落为:
每个数据存储区查询使用一个或多个索引计算其结果,这些索引包含由索引属性指定的序列中的实体,以及可选的实体的祖先......
答案 2 :(得分:0)
你可以使用
SELECT * FROM users WHERE active = true
确保true / false小例
这肯定会有效。
答案 3 :(得分:0)
我必须指定True / False(以大写T / F开头)才能在查询中使用。但是,它在数据存储区查看器中以全小写显示布尔值。