这是我如何将记录插入数据存储的方法
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"包含所有记录,它们对应的键是什么?所以如果我愿意,我可以进行更新。
GetAll 返回一个键数组,如果出现错误,则返回错误。只需迭代密钥即可。 https://developers.google.com/appengine/docs/go/datastore/reference#Query.GetAll
您可以使用"删除"而不是"放置"删除记录。以下是适用于 Go 的 App Engine 数据存储参考,其中解释了所有操作: https://developers.google.com/appengine/docs/go/datastore/reference
看看谷歌的这个例子。它演示如何获取密钥以及更新或删除记录: https://github.com/GoogleCloudPlatform/appengine-angular-gotodos/blob/master/gotodos.go
为了更新或删除数据存储条目,我们需要相关条目的密钥。
query := datastore.NewQuery("User").Filter("ID =", "4be0f045-6ce8-4d3e-751e-15bd84f2b925")
var u []User
key, err := query.GetAll(context, &u)
现在我们有一个数组u
,其中包含与过滤器id = 4be...
匹配的所有条目,在这种情况下,u只有一个条目,并且我们有一个键数组,key
,以及该条目的相应键。
要更新条目:
u[0].Email = "new.email@org"
datastore.Put(context,key[0],&u[0])
这会为您的第一个条目分配新电子邮件,并将更改的条目存储在数据存储中。
要删除该条目:
datastore.Delete(context,key[0])