這是我將數(shù)據(jù)保存到數(shù)據(jù)存儲(chǔ)的方式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)}當(dāng)我調(diào)用Put方法時(shí),我能夠UserDetails成功存儲(chǔ)在數(shù)據(jù)存儲(chǔ)中。但是,除了 中的所有列之外UserDetails,我還可以看到__key__列。我不想那樣。我想保留UserID作為這張桌子的鑰匙。我怎樣才能做到這一點(diǎn)?
2 回答

函數(shù)式編程
TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
使用數(shù)據(jù)存儲(chǔ)名稱(chēng)“-”在保存或加載實(shí)體時(shí)忽略該字段。
type UserDetails struct {
UserID string `datastore:"-"` // <-- change on this line
Name string
UserEmail string
}

一只甜甜圈
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超5個(gè)贊
根據(jù)以下內(nèi)容,“?key?”必須是 *datastore.Key 類(lèi)型,但您使用的是字符串類(lèi)型。不知道有沒(méi)有效果。
但對(duì)于您想要實(shí)現(xiàn)的目標(biāo),您可以做兩件事之一。將 UserID 更改為“userID”并且不指定標(biāo)簽或使用
用戶(hù) ID 字符串`數(shù)據(jù)存儲(chǔ):"-"`
這將阻止它被存儲(chǔ)。
- 2 回答
- 0 關(guān)注
- 165 瀏覽
添加回答
舉報(bào)
0/150
提交
取消