Google App Engine对查询的限制
今天我在GAE进行数据查询时遇到了这样一个异常:First ordering property must be the same as inequality filter property, if specified for this query; received date, expected ctype 。到网络上搜索一下,发现这是Google App Engine对查询上的一个限制。经过一会儿时间的查找,我终于在在Google App Engine上查到该查询限制及其解决办法,办法就是“必须在采用其他排序顺序之前对不等式过滤器中的属性进行排序”。
下面记录一些Google App Engine查询机制的限制,以方便后期参考。索引查询机制的本质是对查询功能强加一些限制。
对一个属性进行过滤或排序需要确认该属性确实存在
属性的查询过滤条件或排序顺序也暗含了一个条件,即实体必须具有该属性的值。
数据存储区实体不需具有其他同类实体所具有的属性值。属性上的过滤器只能与具有该属性的值的实体相匹配。过滤器或排序顺序中所使用的不具有属性值的实体会从为该查询创建的索引中删除。
没有可与不具有属性的实体相匹配的过滤器
无法为缺少指定属性的实体执行查询。一种解决方法是创建一个固定的(已建模的)属性,默认值为 None,然后为实体创建一个过滤条件,属性值为 None。
最新评论