私はGAE、Go、およびデータストアを扱っています。 (Goは、自動的に実体を参照解除されませんので、私はスライスとしてオフKey
ポインタをParticipants
を保存思ってそれらのために。)Google Appengineデータストア内のエンティティをGoで更新する
type Coinflip struct {
Participants []*datastore.Key
Head string
Tail string
Done bool
}
type Participant struct {
Email string
Seen datastore.Time
}
は今、私は特定のでParticipant
を見つけたい:私は、次の構造体を持っていますEmail
アドレスは知り合いCoinflip
に関連付けられています。そのような(これは動作します):
coinflip, _ := find(key_as_string, context)
participants, _ := coinflip.fetchParticipants(context) /* a slice of Participant*/
var found *Participant
for i := 0; i < len(participants) && found == nil; i++ {
if participants[i].Email == r.FormValue("email") {
found = &participants[i]
}
}
(*found).Seen = datastore.SecondsToTime(time.Seconds())
私はデータストアに*found
を保存するにはどうすればよいですか?私は明らかに鍵が必要ですが、Participant
構造体とKey
の間の結合は非常に緩いです。
ここから進める方法がわかりません。 fetchParticipants
コールからも鍵を返す必要がありますか? JavaとPython GAEの実装はかなり簡単です(オブジェクトにput()
を呼び出してください)。事前に
おかげで、