【发布时间】:2017-11-20 17:57:29
【问题描述】:
我的数据存储对象看起来像:
created (timestamp)
guid (string)
details (string)
start (string)
end (string
details、start 或 end 通常是 NULL。
在 Go 中,我正在尝试这样做:
type Edge struct {
created time.Time
details string `datastore: "details,omitempty"`
guid string `datastore: "guid,omitempty"`
start string `datastore: "start,omitempty"`
end string `datastore: "end,omitempty"`
}
for t := client.Run(ctx, q); ; {
var x Edge
key, err := t.Next(&x)
if err == iterator.Done {
break
}
if err != nil {
fmt.Printf("error caught: %v\n\n", err)
}
fmt.Printf("Key=%v\nEdge=%#v\n\n", key, x)
}
输出错误总是这样的:
error caught: datastore: cannot load field "guid" into a "main.Edge": no such struct field
Key=/edges,4503602429165568
Edge=main.Edge{created:time.Time{wall:0x0, ext:0, loc:(*time.Location)(nil)}, details:"", guid:"", start:"", end:""}
当我在数据存储控制台中搜索该键时,我看到 guid 是有效的 string。
GetAll 给了我几乎同样的问题。
我的问题是:
- 我是 Go 新手。我在这里做错了什么吗? (任何拼写错误都是 Stackoverflow 特有的。因为我在这里更改了一些内容)
- 在将数据存储区放入结构之前,是否有办法查看它发回的状态?
- 某些值有时为
null。比如start、end和details。这对结构中的string有效吗?
谢谢。
【问题讨论】:
标签: google-app-engine go struct null google-cloud-datastore