Matches values that are between a minimum and maximum value, semi-inclusive.
		
			Document.field.range(4, 12)
		
		This will find documents with a field whose value is greater than or equal to 4, and less than 12.
		
		Comparison operator: {$gte: gte, $lt: lt}

def range(self, gte, lt):
		"""Matches values that are between a minimum and maximum value, semi-inclusive.
		
			Document.field.range(4, 12)
		
		This will find documents with a field whose value is greater than or equal to 4, and less than 12.
		
		Comparison operator: {$gte: gte, $lt: lt}
		"""
		
		if self._combining:  # We are a field-compound query fragment, e.g. (Foo.bar & Foo.baz).
			print("Combining", self._combining, self._field)
			return reduce(self._combining, (q.range(gte, lt) for q in self._field))
		
		# Optimize this away in production; diagnosic aide.
		if __debug__ and _simple_safety_check(self._field, '$eq'):  # pragma: no cover
			raise NotImplementedError("{self!r} does not allow range comparison.".format(self=self))
		
		return (self >= gte) & (self < lt)