0

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 に変更するにはどうすればよいですか?

各エンティティの「キー」がどのように保存されているかを完全に理解できなかったため、このことについて少し混乱しています。

どんな助けでも大歓迎です。

4

1 に答える 1