GAE Go - Как использовать GetMulti с несуществующими ключами сущностей?

Мне было нужно сделать операцию GetMulti с массивом ключей, для которых существуют некоторые сущности, но некоторые из них не работают.

Мой текущий код, ниже, возвращает ошибку (datastore: no such entity).

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

Итак, как я могу это сделать? Я бы использовал метод get или insert, но его не было.

Ответ 1

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
    }
}