为了账号安全,请及时绑定邮箱和手机立即绑定

使用 Golang 中 Google 数据存储库上的任意键数组进行查询

使用 Golang 中 Google 数据存储库上的任意键数组进行查询

Go
饮歌长啸 2021-09-27 14:16:09
现在,我正在遵循上一个关于使用键/id 数组进行查询的问题的建议ids []int64。这些 ID 可能存在,也可能不存在(它们已被删除,但对其他实例的引用并未被删除)。我尝试获取这些实例的方法如下所示:var keys []*datastore.Keyfor _, id := range ids {    keys = append(keys, datastore.NewKey(c, "Category", "", id, nil))}categories := make([]Category, len(keys))err := datastore.GetMulti(c, keys, categories)if err != nil {    return nil, err}for i := 0; i < len(categories); i++ {    categories[i].Id = keys[i].IntID()}但是,它错误地抛出我:datastore: no such entity另一方面,我可以单独抓住每个人,但有没有更有效的方法来解决这个问题?
查看完整描述

1 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

您需要将错误输入到 appengine.MultiError 中。通过这种方式,您可以访问单个实体的错误。


if me, ok := err.(appengine.MultiError); ok {

    for i, e := range me {

        // e != nil if entity i failed

    }

} else {

   // something else went wrong (timeout, etc).

}

在此处查看 MultiError 的文档


查看完整回答
反对 回复 2021-09-27
  • 1 回答
  • 0 关注
  • 162 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信