google-app-engine - Google 应用引擎 + Go + 数据存储 + 添加/更新/删除记录

标签 google-app-engine go google-cloud-datastore

下面是我如何将记录插入到 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)

另外,可能相关的是,我完成后如何获取 key

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

“queryResult”包含所有记录,它们对应的键是什么?所以我可以根据需要进行更新。

最佳答案

GetAll 返回一个键数组,如果出现错误则返回一个 Error。只需遍历键。 https://developers.google.com/appengine/docs/go/datastore/reference#Query.GetAll

您可以使用 Delete 而不是 Put 来删除记录。以下是 Go 的 App Engine 数据存储引用,解释了所有操作: https://developers.google.com/appengine/docs/go/datastore/reference

并查看来自 Google 的这个示例。它显示了如何获取 key 以及更新或删除记录: https://github.com/GoogleCloudPlatform/appengine-angular-gotodos/blob/master/gotodos.go

关于google-app-engine - Google 应用引擎 + Go + 数据存储 + 添加/更新/删除记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19899080/

相关文章:

google-app-engine - 为 Google App Engine 转换 pfx 文件

go - 如何使用 Benthos 读取和解码来自 Kafka 的 AVRO 消息及其关联的 kafka key ?

Gocql 自定义编码器

Golang 在 Windows 上运行而无需处理防火墙

google-app-engine - GAE/去 : datastore iterator too slow

java - 使用 GWT 在运行时获取奇怪的 ClassNotDefFoundException

google-app-engine - 在 App Engine 中使用 rpc/jsonrpc

java - Google App Engine 存储动态 java 对象

security - 在 App Engine 上加密用户数据

python-3.x - Google Cloud Console - Flask - main.py vs 包