这是我将数据保存到数据存储的方式type UserDetails struct { UserID string `datastore:"__key__"` Name string UserEmail string}func (c DataStoreClient) Put(ctx context.Context, orgID string, ud *UserDetails) (id int64, err error) { key := datastore.NameKey(userKind, ud.UserID, nil) key.Namespace = orgID k, err := c.client.Put(ctx, key, ud) if err != nil { return 0, err } return k.ID, nil}func (ud *DataStoreUserDetails) Save() ([]datastore.Property, error) { return datastore.SaveStruct(ud)}func (ud *DataStoreUserDetails) LoadKey(k *datastore.Key) error { ud.UserID = k.Name return nil}func (ud *DataStoreUserDetails) Load(ps []datastore.Property) error { return datastore.LoadStruct(ud, ps)}当我调用Put方法时,我能够UserDetails成功存储在数据存储中。但是,除了 中的所有列之外UserDetails,我还可以看到__key__列。我不想那样。我想保留UserID作为这张桌子的钥匙。我怎样才能做到这一点?
2 回答
函数式编程
TA贡献1807条经验 获得超9个赞
使用数据存储名称“-”在保存或加载实体时忽略该字段。
type UserDetails struct {
UserID string `datastore:"-"` // <-- change on this line
Name string
UserEmail string
}
一只甜甜圈
TA贡献1836条经验 获得超5个赞
根据以下内容,“ key ”必须是 *datastore.Key 类型,但您使用的是字符串类型。不知道有没有效果。
但对于您想要实现的目标,您可以做两件事之一。将 UserID 更改为“userID”并且不指定标签或使用
用户 ID 字符串`数据存储:"-"`
这将阻止它被存储。
- 2 回答
- 0 关注
- 114 浏览
添加回答
举报
0/150
提交
取消