繁体   English   中英

从appengine .GetAll更新实体并保存到数据存储区

[英]Update entity from appengine .GetAll and save to datastore

我有一个模型:

type UserProfile struct {
UserID         string    `datastore:"user_id" json:"user_id,omitempty"`
Username       string    `datastore:"username" json:"username,omitempty"`
StripUsername  string    `datastore:"strip_username" json:"strip_username,omitempty"`
Email          string    `datastore:"email" json:"email,omitempty"`
LoginType      string    `datastore:"login_type" json:"login_type,omitempty"`
CurrentSession string    `datastore:"current_session" json:"current_session,omitempty"`
FBAcessToken   string    `datastore:"fb_access_token" json:"fb_access_token,omitempty"`
Created        time.Time `datastore:"created" json:"-"`
}

我执行一个.GetAll来填充它:

// Skip a few steps here

var userProfiles []UserProfile
q.GetAll(c, &userProfiles)

假设我要修改其中一个实体:

userProfile[0].Email = "test@example.com"

我知道我想像这样放置该实体:

k = datastore.Put(c, k, userProfile[0])

如何从userProfile [0]获取该初始密钥以调用Put with?

GetAll返回键:

var userProfiles []UserProfile
keys, err := q.GetAll(c, &userProfiles)
if err != nil {
    // handle error
}

使用从GetAll返回的键更新实体:

userProfile[0].Email = "test@example.com"
_, err = datastore.Put(c, keys[0], userProfile[0])
if err != nil {
    // handle error
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM