golang

时间:2018-01-18 03:40:57

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

根据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)的调用需要特定类型而不是空接口。请问有人帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

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

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

    props, err := v.Save()
    ...

有关详细信息,请参阅this docs