2

Python 已经回答了这个问题: 如何从具有特定父级的 GAE 数据存储中获取所有记录?

我如何在 Go 中做到这一点?我想做类似的事情:

t := new(TagRecord)
k, err := datastore.DecodeKey(r.URL.Path[1:])
...
_, err = datastore.NewQuery("TagRecord").
  Filter("Parent =", k). 
  Order("-CreatedAt").
  Limit(1).
  Run(c).Next(t)

...但这会因以下错误而惨遭失败:

datastore: query has no more results

当我尝试按其他属性进行过滤时,包括那些硬编码到过滤器中的属性和那些通过 URL 传递的属性,查询会正常运行并使用正确的属性填充 t。我的问题能以多么令人屈辱的简单来解决?

4

2 回答 2

2

在这里让你绊倒的是父查询不使用Filter()。相反,您使用祖先约束

q := datastore.NewQuery("TagRecord").
    Ancestor(k).
    Order("-CreatedAt").
    Limit(1)

// etc...
于 2013-01-07T07:41:36.503 回答
0

确保您还为此特定查询定义索引并上传索引配置文件

于 2013-02-06T09:47:05.673 回答