Питер, ты определенно был на правильном пути. Я думаю Я понял это. Я на самом деле не проверял это, но, похоже, это правильно в средстве просмотра хранилища данных. То, что у меня сейчас выглядит, выглядит так (без учета проверки ошибок для примера):
type Boss struct {
Name, Uuid string
}
type Employee struct {
Name, Uuid string,
Boss *datastore.Key
}
boss := &Boss {
Name: "Pointy Haired Boss",
Uuid: <<some uuid>>,
}
dilbert := &Employee {
Name: "Dilbert",
Uuid: <<some uuid>>,
boss: nil,
}
datastore.Put(context, datastore.NewIncompleteKey(context, "Boss", nil), bossman)
query := datastore.NewQuery("Boss").Filter("Uuid =", bossMan)
for t := query.Run(ctx); ; {
var employee Employee
key, err := t.Next(&employee)
if err == datastore.Done {
break
}
if err != nil {
fmt.Fprintf(w, "Error %s", err)
}
dilbert.Boss = key
}
datastore.Put(context, datastore.NewIncompleteKey(context, "Employee", nil), dilbert)