func (q *Query) KeysOnly(keysOnly bool) *Query {
	q.base.KeysOnly(keysOnly)
	return q
}
KeysOnly configures the query to return keys, instead of keys and entities.
package datastore
import (
	"fmt"
	"strings"
	"appengine"
)
func NewQuery(kind string) *Query {
	return &Query{base: NewBaseQuery().Kind(kind)}
}
type Query struct {
	base    *BaseQuery
	aliases map[string]string
}
func (q *Query) Clone() *Query {
	return &Query{base: q.base.Clone(), aliases: q.aliases}
}
func (q *Query) SetPropertyAliases(aliases map[string]string) *Query {
	q.aliases = aliases
	return q
}
func (q *Query) propertyName(alias string) string {
	if q.aliases != nil {
		if name, ok := q.aliases[alias]; ok {
			return name
		}
	}
	return alias
}
func (q *Query) Namespace(namespace string) *Query {
	q.base.Namespace(namespace)
	return q
}
func (q *Query) Ancestor(key *Key) *Query {
	q.base.Ancestor(key)
	return q
}
func (q *Query) Kind(kind string) *Query {
	q.base.Kind(kind)
	return q
}
func (q *Query) Filter(filter string, value interface{}) *Query {
	property := strings.TrimRight(filter, " ><=")
	var operator queryOperator
	switch strings.TrimSpace(filter[len(property):]) {
	case "<":
		operator = QueryOperatorLessThan
	case "<=":
		operator = QueryOperatorLessThanOrEqual
	case "=":
		operator = QueryOperatorEqual
	case ">=":
		operator = QueryOperatorGreaterThanOrEqual
	case ">":
		operator = QueryOperatorGreaterThan
	default:
		q.base.err = fmt.Errorf("datastore: invalid query filter %q",
			filter)
		return q
	}
	q.base.Filter(q.propertyName(property), operator, value)
	return q
}
func (q *Query) Order(order string) *Query {
	property := order
	direction := QueryDirectionAscending
	if strings.HasPrefix(order, "-") {
		property = strings.TrimSpace(order[1:])
		direction = QueryDirectionDescending
	}
	q.base.Order(q.propertyName(property), direction)
	return q
}
func (q *Query) Limit(limit int) *Query {
	q.base.Limit(limit)
	return q
}
func (q *Query) Offset(offset int) *Query {
	q.base.Offset(offset)
	return q
}