you_are_enot
@you_are_enot
Пограммист любитель

Как узнать, что пользователь ещё не занесён в базу?

Я использую официальную библиотеку для работы с mongodb.
При регистрации нового пользователя нужно узнать, был ли id зарегистрирован раньше.
Однако, если в базе нет такого id? метод FindOne возвращает ошибку
mongo: no documents in result


Как отделять ошибку при отсутствии записи от реальных ошибок?

u := &models.User{}
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()

if err := r.store.db.FindOne(ctx, bson.M{"userID": id}).Decode(u); err != nil {
  return nil, err
}

return u, nil
  • Вопрос задан
  • 126 просмотров
Решения вопроса 1
@ghostiam
На Go писатель, серверов пинатель.
if errors.Is(err, mongo.ErrNoDocuments) {
// документа нет
}

// если у вас Го до 1.13
if err == mongo.ErrNoDocuments {
// документа нет
}


https://github.com/mongodb/mongo-go-driver/blob/d7...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы