我正在为我的路线使用大猩猩多路复用器,并传递一个 ID。使用该 ID 如何从数据存储中获取实体。param := mux.Vars(r)c := appengine.NewContext(r)item := []Item{}pr, err := datastore.NewQuery("Item").Filter("ID = ", param["id"]).GetAll(c, &item)在这里我被卡住了,我尝试使用过滤器但它不起作用。我接下来该怎么做?
2 回答
米琪卡哇伊
TA贡献1998条经验 获得超6个赞
你不会说你是为实体使用整数还是字符串 id。我将假设整数,因为它需要更多的代码。首先,创建一个密钥:
n, err := strconv.ParseInt(param["id"], 10, 64)
if err != nil {
// handle error
}
key := datastore.NewKey(c, "Item", "", n, nil)
现在你有了密钥,你可以获取实体:
var item Item
if err := datastore.Get(c, key, &item); err != nil {
// handle error
}
获取实体比查询实体更有效。如果您确实想按 id 查询,请参阅App Engine 文档中的关键过滤器。
- 2 回答
- 0 关注
- 200 浏览
添加回答
举报
0/150
提交
取消