【问题标题】:Filtering datastore results by parent entity按父实体过滤数据存储结果
【发布时间】:2012-07-25 20:37:26
【问题描述】:

这个问题已经被 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。我的问题能以多么令人羞耻的简单来解决?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-28
        • 1970-01-01
        • 1970-01-01
        • 2014-11-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多