我在我的现场appengine网站上进行此查询:
orders = models.Order.gql("WHERE status IN ('accepted','packing') ORDER BY created_on DESC").fetch(100)
令我惊讶的是,我得到的结果是状态未被接受'或者'包装',但'取消'。我以前从未见过这个问题,我今天才注意到它:
for order in orders:
... order.status
...
u'accepted'
u'accepted'
u'cancelled'
u'cancelled'
u'accepted'
有什么想法?似乎某些事情根本就是错误的。我没有缓存任何结果,这一切都在远程shell上,它发生在我的实时网站上。
答案 0 :(得分:1)
如果您的实体最近发生了变化,这可能是数据存储区的最终一致性。更新实体时,索引需要一段时间才能反映您的更改,而实体本身是最新的。
如果数据为structured appropriately,您可以尝试祖先查询,看看会发生什么。