【问题标题】:Kindless ancestor query for different entity kinds in golanggolang中不同实体类型的无情祖先查询
【发布时间】:2018-01-18 03:40:56
【问题描述】:

根据documentation,应该可以检索祖先及其所有后代,无论其种类如何。

在我的实现中,我有不同类型的祖先和后代。然而,以下代码总是返回错误“无效的实体类型”:

q := datastore.NewQuery("").Ancestor(tomKey)
t := q.Run(ctx)
for {
    var x interface{}
    _, err := t.Next(&x)
    if err == datastore.Done {
        break
    }
    if err != nil {
        log.Errorf(ctx, "Error fetching entity: %v", err)
        break
    }
}

似乎对 t.Next(&x) 的调用需要特定类型而不是空接口。有人可以帮我解决这个问题吗?

【问题讨论】:

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


    【解决方案1】:

    我不知道文档有误,但您可以使用datastore.PropertyList 获取任意值。像这样:

        var v datastore.PropertyList
        key, err := iter.Next(&v)
        ...
    
        props, err := v.Save()
        ...
    

    更多信息请参见this docs

    【讨论】:

    • 正常工作。非常感谢。
    • @fsapei 祝你好运!欢迎接受这个答案:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 2017-11-25
    • 1970-01-01
    相关资源
    最近更新 更多