1

在 Python 中是

q = db.Query()
q.ancestor(ancestor_key)

我试过:

q := datastore.NewQuery("")
q.Ancestor(ancestor_key)

运行 GetAll 时出现错误“datastore: empty kind”

我也试过:

q := &datastore.Query{}
q.Ancestor(ancestor_key)

我收到错误“数据存储:空查询类型”

提前感谢您对此事的任何帮助。

4

3 回答 3

2

函数新查询

func NewQuery(kind string) *Query

NewQuery 为特定实体类型创建一个新查询。种类必须是非空的。

在您的代码中,

q := datastore.NewQuery("")

那种是空的。

于 2013-02-19T04:52:35.513 回答
1

Rich Churcher 的评论似乎是正确的,至少目前是这样。

我认为 Go 不支持 Python kindless 祖先查询。有那么一会儿,我以为你可以使用祖先键的 Kind() 方法,然后我又喝了一些咖啡,然后才清醒过来。

于 2013-02-21T18:05:13.153 回答
0

GetAll 似乎不起作用,但您可以进行无情的查询。

ctx := appengine.NewContext(r)
q := datastore.NewQuery("")
for it := q.Run(ctx); ; {
  key, err := t.Next(nil)
  if err == datastore.Done {
    break
  }
  if err != nil {
    break
  }
  fmt.Printf("%v\n", key)
}
于 2017-04-04T05:54:34.770 回答