当我尝试运行日期我收到以下错误下令数据存储查询:查询GAE数据存储时如何解决索引错误?
NeedIndexError: no matching index found.
The suggested index for this query is:
- kind: Message
properties:
- name: author
- name: ref
- name: date
查询运行没有错误,如果我不尝试通过日期命令。数据存储区索引下的appengine控制台说:
author ▲ , ref ▲ , date ▼
Serving
我在做什么错?我如何运行按日期排序的查询?谢谢!
这里是我的实体定义:
from google.appengine.ext import ndb
class Message(ndb.Model):
subject = ndb.StringProperty()
body = ndb.TextProperty()
date = ndb.DateTimeProperty(auto_now_add=True)
ref = ndb.StringProperty(required=True)
author = ndb.KeyProperty(required=True)
,这是失败的查询:
def readMessages(ref, user = None):
query = Message.query()
query = query.filter(Message.ref == ref)
if user:
query = query.filter(Message.author == user.key)
query = query.order(Message.date)
# convert to a list so we can index like an array
return [ message for message in query ]
我index.yaml中包含:
indexes:
- kind: Message
properties:
- name: author
- name: ref
- name: date
direction: desc
谢谢。其实,我忘了复制索引定义的最后一行。应用引擎控制台指示索引已创建为参考▲,作者▲,日期▼。所以我不认为这是我的问题,但我已经更新了问题中的索引定义。 – deltanine 2013-04-22 03:07:27