/// <summary>
		///     Not equal to
		/// </summary>
		/// <param name="property">property as Property, enum or string</param>
		/// <param name="value">value to compare</param>
		/// <returns>Query</returns>
		public Query WhereNot(Property property, Value value)
		{
			return Where(property, value, Comparisons.NotEqualTo);
		}
		/// <summary>
		///     Less than or equal to
		/// </summary>
		/// <param name="property">property as Property, enum or string</param>
		/// <param name="value">value to compare to</param>
		/// <returns>Query</returns>
		public Query WhereLte(Property property, Value value)
		{
			return Where(property, value, Comparisons.LessThanOrEqualTo);
		}
		/// <summary>
		///     Check for an absent property
		/// </summary>
		/// <param name="property">property as Property, enum or string</param>
		/// <returns>Query</returns>
		public Query WhereEmpty(Property property)
		{
			return Where(property, Value.Any, Comparisons.NotEqualTo);
		}
		/// <summary>
		///     Greater than or equal to
		/// </summary>
		/// <param name="property">property as Property, enum or string</param>
		/// <param name="value">value to compare to</param>
		/// <returns>Query</returns>
		public Query WhereGte(Property property, Value value)
		{
			return Where(property, value, Comparisons.GreaterThanOrEqualTo);
		}
		/// <summary>
		///     Equal to
		/// </summary>
		/// <param name="property">property as Property, enum or string</param>
		/// <param name="value">Value to compare</param>
		/// <param name="comparison">Comparisons to specify how to compare</param>
		/// <returns>Query</returns>
		public Query Where(Property property, Value value, Comparisons comparison)
		{
			var propertyEqual = new PropertyComparison(property, value, comparison, this);
			_elements.Add(propertyEqual);
			return this;
		}