根据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)的调用需要特定类型而不是空接口。请问有人帮我解决这个问题吗?
答案 0 :(得分:0)
我不知道文档是错误的,但您可以使用datastore.PropertyList
来获取任意值。像这样:
var v datastore.PropertyList
key, err := iter.Next(&v)
...
props, err := v.Save()
...
有关详细信息,请参阅this docs。