Мне нужно найти в базе данных элементы, соответствующие параметрам запроса в 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, которая не может принимать слайс в качестве аргумента.