1

レコードを DataStore に挿入する方法は次のとおりです

type User struct {
    Id string
    Name string
    Pass string
    Email string
}

user := User {
    Id:     "4be0f045-6ce8-4d3e-751e-15bd84f2b925",
    Name:   "test",
    Pass:   "test",
    Email:  "",
}

datastore.Put(context, datastore.NewIncompleteKey(context, "User", nil), &user)

レコードを更新または削除するにはどうすればよいですか? 私が見るすべての例は、いくつかの「キー」を使用しています。(疑似コード)のような単純なものが必要です:

user.Email = "new@email.com"
filter := string.Format("Id='{0}'", "4be0f045-6ce8-4d3e-751e-15bd84f2b925");
datastore.Put(context, "User", user, filter ), &user)

また、おそらく関連して、私が行った後にキーを取得する方法

querySize := 1000
query := datastore.NewQuery("User").Limit(querySize)
queryResult := make([]User, 0, querySize)
query.GetAll(context, &queryResult)

「queryResult」にはすべてのレコードが含まれています。対応するキーは何ですか? そのため、必要に応じて更新を行うことができます。

4

2 に答える 2

4

データストア エントリを更新または削除するには、問題のエントリのキーが必要です。

query := datastore.NewQuery("User").Filter("ID =", "4be0f045-6ce8-4d3e-751e-15bd84f2b925")
var u []User
key, err := query.GetAll(context, &u)

uこれで、フィルター に一致するすべてのエントリを含む配列が得id = 4be...られました。この場合、u にはエントリが 1 つしかなく、keyエントリに対応するキーを含むキーの配列 があります。

エントリを更新するには:

u[0].Email = "new.email@org"
datastore.Put(context,key[0],&u[0])

これにより、u の最初のエントリが新しい電子メールに割り当てられ、変更されたエントリがデータストアに保存されます。

エントリを削除するには:

datastore.Delete(context,key[0])
于 2014-04-12T10:59:29.173 に答える