google-app-engine - 按父实体过滤数据存储结果

标签 google-app-engine google-cloud-datastore go

Python 已经回答了这个问题: How to get all records from GAE datastore with particular parent?

我如何在 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。我的问题能以多么简单的方式得到解决?

最佳答案

这里让您感到困惑的是父查询不使用 Filter()。相反,您使用 ancestor constraint :

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

// etc...

关于google-app-engine - 按父实体过滤数据存储结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658214/

相关文章:

unit-testing - 比较 Go 中的多个结构字段

go - 生成所有可能的 n 字符密码

python - 在 Google App Engine 中使用嵌套 AND/OR 进行祖先查询

python - 在 GAE 的 Python 中将实体键序列化为字符串

google-app-engine - 云端点正在提供缓存响应

python - 数据存储区生成的 ID 能否覆盖我的实体?

google-app-engine - GWT:解密 GAE-JDO key 以访问父级

android - 尝试在 Android Studio 上运行 Enhance

google-app-engine - App Engine 备份永远不会完成,唯一的线索是 mapreduce worker 回调失败

go - 无法识别的导入路径(导入路径不以主机名开头)