gpt4 book ai didi

google-app-engine - 使用 Golang 中的 Google 数据存储区中的任意键数组进行查询

转载 作者:IT王子 更新时间:2023-10-29 02:05:25 25 4
gpt4 key购买 nike

这个问题的延续:

Doing a "IN Array" query on google app engine datastore with golang

现在,我正在遵循上一个问题中关于使用键/id 数组 ids []int64 进行查询的建议。这些 ID 可能实际存在也可能不存在(它们已被删除,但对其他实例的引用尚未删除)。

我尝试获取这些实例的方法如下所示:

var keys []*datastore.Key

for _, 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

另一方面,我可以单独抓取每一个,但有没有更有效的方法来解决这个问题?

最佳答案

您需要向 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 的文档 here

关于google-app-engine - 使用 Golang 中的 Google 数据存储区中的任意键数组进行查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29305850/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com