我根据在mySQL中创建表的方式创建了一系列结构:
type User struct {
UserID int
Email string
Password string
DateCreated time.Time
}
type Device struct {
DeviceID int
Udid string
DateCreated time.Time
DateUpdated time.Time
IntLoginTotal int
}
type DeviceInfo struct {
DeviceID int
DeviceName string
Model string
LocalizedModel string
SystemName string
SystemVersion string
Locale string
Language string
DateCreated time.Time
}
但是,我的印象是我无法做出这样的请求,而是我需要创建一个可以包含多个设备数组的结构(每个包含多个设备信息记录的数组)。
这样做的最佳方式是什么?
答案 0 :(得分:1)
在这种情况下,只需将“Kind”设置为结构的名称。
来自文档:
func NewKey(c appengine.Context, kind, stringID string, intID int64, parent *Key) *Key
NewKey创建一个新密钥。善良不能空虚。一个或两个 stringID和intID必须为零。如果两者都为零,则返回的密钥是 不完整的。父母必须是完整的密钥或零。
例如保存用户。
c := appengine.NewContext(r)
u := &User{UserID: userid, Email: email, Password: password, DateCreated: datecreated}
k := datastore.NewKey(c, "User", u.UserID, 0, nil)
e := p
_, err := datastore.Put(c, k, e)
遵循相同的逻辑来保存不同的结构类型。
加载用户:
c := appengine.NewContext(r)
k := datastore.NewKey(c, "User", userid, 0, nil)
e := new(User)
_, err := datastore.Get(c, k, e)