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

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

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