GAE Go - 如何将GetMulti与不存在的实体键一起使用? [英] GAE Go — How to use GetMulti with non-existent entity keys?
问题描述
我发现自己需要对一些实体存在的键数组进行 GetMulti
操作,但有些不这样。
下面我的当前代码返回一个错误( datastore:no such entity
)。
err:= datastore.GetMulti(c,keys,infos)
GetMulti可以返回一个 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
}
}
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与不存在的实体键一起使用?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!