我发现自己需要对GetMulti一组存在某些实体的键进行操作,而有些则不存在。
GetMulti
我当前的代码如下,返回错误(datastore: no such entity)。
datastore: no such entity
err := datastore.GetMulti(c, keys, infos)
那我该怎么做呢?我会使用“获取或插入”方法,但是没有。
appengine.MultiError在这种情况下,GetMulti可以返回一个。循环浏览并寻找datastore.ErrNoSuchEntity。例如:
appengine.MultiError
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 } }