code: func (q *query) String() string {
  	result := fmt.Sprintf("%s.NewQuery()", q.collection.Name())
  	for _, filter := range q.filters {
  		result += fmt.Sprintf(".%s", filter)
  	}
  	if q.hasOrder() {
  		result += fmt.Sprintf(".%s", q.order)
  	}
  	if q.hasOffset() {
  		result += fmt.Sprintf(".Offset(%d)", q.offset)
  	}
  	if q.hasLimit() {
  		result += fmt.Sprintf(".Limit(%d)", q.limit)
  	}
  	if q.hasIncludes() {
  		result += fmt.Sprintf(`.Include("%s")`, strings.Join(q.includes, `", "`))
  	} else if q.hasExcludes() {
  		result += fmt.Sprintf(`.Exclude("%s")`, strings.Join(q.excludes, `", "`))
  	}
  	return result
  }
docs: // String satisfies fmt.Stringer and prints out the query in a format that
  // matches the go code used to declare it.