code: func (ms *modelSpec) sortArgs(idsKey string, redisFieldNames []string, limit int, offset uint, reverse bool) redis.Args {
  	args := redis.Args{idsKey, "BY", "nosort"}
  	for _, fieldName := range redisFieldNames {
  		args = append(args, "GET", ms.name+":*->"+fieldName)
  	}
  	// We always want to get the id
  	args = append(args, "GET", "#")
  	if !(limit == 0 && offset == 0) {
  		args = append(args, "LIMIT", offset, limit)
  	}
  	if reverse {
  		args = append(args, "DESC")
  	} else {
  		args = append(args, "ASC")
  	}
  	return args
  }
docs: // sortArgs returns arguments that can be used to get all the fields in includeFields
  // for all the models which have corresponding ids in setKey. Any fields not in
  // includeFields will not be included in the arguments and will not be retrieved from
  // redis when the command is eventually run. If limit or offset are not 0, the LIMIT
  // option will be added to the arguments with the given limit and offset. setKey must
  // be the key of a set or a sorted set which consists of model ids. The arguments
  // use they "BY nosort" option, so if a specific order is required, the setKey should be
  // a sorted set.