一尘不染

GAE Go —如何将GetMulti与不存在的实体密钥一起使用?

go

我发现自己需要对GetMulti一组存在某些实体的键进行操作,而有些则不存在。

我当前的代码如下,返回错误(datastore: no such entity)。

err := datastore.GetMulti(c, keys, infos)

那我该怎么做呢?我会使用“获取或插入”方法,但是没有。


阅读 230

收藏
2020-07-02

共1个答案

一尘不染

appengine.MultiError在这种情况下,GetMulti可以返回一个。循环浏览并寻找datastore.ErrNoSuchEntity。例如:

if err := datastore.GetMulti(c, keys, dst); err != nil {
    if me, ok := err.(appengine.MultiError); ok {
        for i, merr := range me {
            if merr == datastore.ErrNoSuchEntity {
                // keys[i] is missing
            }
        }
    } else {
        return err
    }
}
2020-07-02