code: func (s *MgetService) Do(ctx context.Context) (*MgetResponse, error) {
  	// Build url
  	path := "/_mget"
  
  	params := make(url.Values)
  	if s.realtime != nil {
  		params.Add("realtime", fmt.Sprintf("%v", *s.realtime))
  	}
  	if s.preference != "" {
  		params.Add("preference", s.preference)
  	}
  	if s.refresh != "" {
  		params.Add("refresh", s.refresh)
  	}
  	if s.routing != "" {
  		params.Set("routing", s.routing)
  	}
  	if len(s.storedFields) > 0 {
  		params.Set("stored_fields", strings.Join(s.storedFields, ","))
  	}
  
  	// Set body
  	body, err := s.Source()
  	if err != nil {
  		return nil, err
  	}
  
  	// Get response
  	res, err := s.client.PerformRequest(ctx, PerformRequestOptions{
  		Method: "GET",
  		Path:   path,
  		Params: params,
  		Body:   body,
  	})
  	if err != nil {
  		return nil, err
  	}
  
  	// Return result
  	ret := new(MgetResponse)
  	if err := s.client.decoder.Decode(res.Body, ret); err != nil {
  		return nil, err
  	}
  	return ret, nil
  }
docs: // Do executes the request.