Как найти объекты в mongodb по массиву ключей в Golang? - PullRequest
0 голосов
/ 27 апреля 2020

Мне нужно найти в базе данных элементы, соответствующие параметрам запроса в GET-запросе.

func (s *APIServer) getUserByFilter() http.HandlerFunc {
    return func(w http.ResponseWriter, r *http.Request) {
        params := r.URL.Query()
        user, _ := s.store.User().GetUserByFilter(params)

        userResponse := &model.UserResponse{
            ID:                 user.ID,
            PhoneNumber:        user.PhoneNumber,
            FirstName:          user.FirstName,
            LastName:           user.LastName,
            PhotoURL:           user.PhotoURL,
        }
        respondWithJSON(w, http.StatusOK, userResponse)
    }
}
func (r *UserRepository) GetUserByFilter(queries map[string][]string) (*model.User, error) {
    var userResult *model.User

    collection := r.store.db.Collection("users")

    var queriesBson []bson.M
    for k, v := range queries {
        testBson = append(queriesBson, bson.M{k: v})
    }

    err := collection.FindOne(context.TODO(), queriesBson).Decode(&userResult)
    if err != nil {
        return nil, err
    }

    return userResult, nil
}

Я пытаюсь это сделать, но получаю сообщение об ошибке при попытке вызвать Функция FindOne, которая не может принимать слайс в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...