Go を使用して appengine データストアを更新する方法の効果的な例を見つけようとしています。私がウェブ上で見つけたすべての例は非常に曖昧であり、ほとんどが概念を説明しており、「実生活」ではありません。go の appengine ドキュメントには次のように書かれています。
...「既存のエンティティを更新するには、同じキーを使用して別の Put() を実行する必要があります。」
ここでの問題は、キーを取得する方法にあります。したがって、データを保存および取得するための以下のコードがあります。
func subscribe(w http.ResponseWriter, r *http.Request) {
user := User {
Name: r.FormValue("username"),
Email: r.FormValue("useremail"),
Flag: 0,
}
c := appengine.NewContext(r)
//datastore.Put(c, datastore.NewIncompleteKey(c, "User", nil), &user)
datastore.Put(c, datastore.NewKey(c, "User", "stringID", 0, nil), &user)
template.Must(template.ParseFiles("confirmation.html")).Execute(w, nil)
}
func checkusers(w http.ResponseWriter, r *http.Request) {
c := appengine.NewContext(r)
qUsers := datastore.NewQuery("User")
var users []User
qUsers.GetAll(c, &users)
template.Must(template.ParseFiles("users.html")).Execute(w, users)
}
flag プロパティを更新して値を 1 に変更するにはどうすればよいですか?
各エンティティの「キー」がどのように保存されているかを完全に理解できなかったため、このことについて少し混乱しています。
どんな助けでも大歓迎です。