本文介绍了GAE Go - 如何将GetMulti与不存在的实体键一起使用?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我发现自己需要对一些实体存在的键数组进行 GetMulti 操作,但有些不这样。
下面我的当前代码返回一个错误( datastore:no such entity )。
err:= datastore.GetMulti(c,keys,infos)
那么我该如何做到这一点?我会使用get或insert方法,但是没有一个。解决方案 GetMulti可以返回一个在这种情况下。循环浏览并查找。例如:
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
}
}
I've found myself needing to do a GetMulti operation with an array of keys for which some entities exist, but some do not.
My current code, below, returns an error (datastore: no such entity).
err := datastore.GetMulti(c, keys, infos)
So how can I do this? I'd use a "get or insert" method, but there isn't one.
解决方案
GetMulti can return a appengine.MultiError in this case. Loop through that and look for datastore.ErrNoSuchEntity. For example:
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
}
}
这篇关于GAE Go - 如何将GetMulti与不存在的实体键一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!