如何查询GQL的布尔值?

时间:2013-09-10 08:56:43

标签: google-app-engine google-cloud-datastore gql

似乎没有任何关于如何在GQL查询的where语句中使用布尔参数查询数据存储区的文档。

我一直在尝试基于布尔列查询AppEngine数据存储区,但它没有在AppEngine仪表板的数据查看器中返回任何结果。

我尝试了以下内容:

SELECT * FROM users WHERE active=TRUE
SELECT * FROM users WHERE active=True

非常感谢任何帮助。

4 个答案:

答案 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开头)才能在查询中使用。但是,它在数据存储区查看器中以全小写显示布尔值。