def S(Document, *fields):
	result = []
	for field in fields:
		if isinstance(field, tuple):
			field, direction = field
			result.append((field, direction))
			continue
		direction = ASCENDING
		if not field.startswith('__'):
			field = field.replace('__', '.')
		if field[0] == '-':
			direction = DESCENDING
		if field[0] in ('+', '-'):
			field = field[1:]
		_field = traverse(Document, field, default=None)
		result.append(((~_field) if _field else field, direction))
	return result