使用ORDER BY不返回任何结果

时间:2012-10-14 09:50:20

标签: google-app-engine

我有一个实体定义为:

a    Integer
b    Float
type     String 
type     STRING  <--- Indexed property

我运行没有排序的查询,并返回结果。

SELECT * FROM com_MyDomain WHERE type = 'GENERAL'

如果我添加排序,查询将不返回任何结果。

SELECT * FROM com_MyDomain WHERE type = 'GENERAL' ORDER BY b, a

我还有一个索引(应用引擎控制台中的服务状态)定义为:

<datastore-index kind="com_MyDomain"
    ancestor="false" source="manual">
    <property name="type" direction="asc" />
    <property name="b" direction="asc" />
    <property name="a" direction="asc" />
</datastore-index>

1 个答案:

答案 0 :(得分:1)

我唯一能想到的是你的实体没有b或a的价值。

如上所述:

  
    

忽略查询中指定的属性的实体

         

同类实体不需要具有相同的属性。要符合查询结果的条件,实体必须拥有查询过滤器和排序顺序中命名的每个属性的值(可能为null)。如果不是,则从用于执行查询的索引中省略该实体,因此不会将其包括在查询的结果中。

  

(来自https://developers.google.com/appengine/docs/python/datastore/queries下的&#39;查询限制&#39;)

因此,唯一符合逻辑的事情似乎是您的数据没有填充或填充。

相关问题