protected function _buildCondition($property, $condition, $value) {
		switch ($condition) {
			// var = ?
			case self::COND_EQUAL:
				return [$property => $value];
			
			// var in(?)
			case self::COND_IN:
				return [$property => [
					self::MONGO_IN => (array) $value
				]];
			
			// var not in(?)
			case self::COND_NOT_IN:
				return [$property => [
					self::MONGO_NOT_IN => (array) $value
				]];
			
			// var < ?
			case self::COND_LESS:
				return [$property => [
					self::MONGO_LESS => $value
				]];
			
			// var > ?
			case self::COND_MORE:
				return [$property => [
					self::MONGO_MORE => $value
				]];
			
			// var <= ?
			case self::COND_LESS_EQUAL:
				return array($property => array(
					self::MONGO_LESS_EQUAL => $value
				));
			
			// var >= ?
			case self::COND_MORE_EQUAL:
				return [$property => [
					self::MONGO_MORE_EQUAL => $value
				]];
			
			// var != ?
			case self::COND_NOT_EQUAL:
			case self::COND_NOT_EQUAL_ALT:
				return [$property => [
					self::MONGO_NOT_EQUAL => $value
				]];
			
			// var in array(?)
			case self::COND_IN_ARRAY:
				return [$property => [
					self::MONGO_IN_ARRAY => (array) $value
				]];
			
			// var exists(?)
			case self::COND_EXISTS:
				return [$property => [
					self::MONGO_EXISTS => $value
				]];
			
			// var type(?)
			case self::COND_TYPE:
				return [$property => [
					self::MONGO_TYPE => $value
				]];
				
			// var is array()
			case self::COND_IS_ARRAY:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_ARRAY
				]];
			
			// var is int()
			case self::COND_IS_INT:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_INT32
				]];
			
			// var is string()
			case self::COND_IS_STRING:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_STRING
				]];
			
			// var is bool()
			case self::COND_IS_BOOL:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_BOOLEAN
				]];
			
			// var is null()
			case self::COND_IS_NULL:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_NULL
				]];
			
			// var regexp(?)
			case self::COND_REGEXP:
				return [$property => new MongoRegex($value)];
			
			// var like ?
			case self::COND_LIKE:
				$regex = preg_quote(trim($value, '%'));
				
				if ($value[0] !== '%') {
					$regex = '^' . $regex;
				}
				
				if ($value[strlen($value) - 1] !== '%') {
					$regex .= '$';
				}
				
				return [$property => new MongoRegex('/' . $regex . '/')];
				
			// var array size ?
			case self::COND_ARRAY_COUNT:
			case self::COND_ARRAY_COUNT_ALT:
				return [$property => [
					self::MONGO_SIZE => $value
				]];
			
			default:
				throw new Exception('Uncnown condition: "' . $condition . '"');
		}
	}
protected function _buildCondition($property, $condition, $value) {
		switch ($condition) {
			// var = ?
			case self::COND_EQUAL:
				return [$property => $value];
			
			// var in(?)
			case self::COND_IN:
				return [$property => [
					self::MONGO_IN => (array) $value
				]];
			
			// var not in(?)
			case self::COND_NOT_IN:
				return [$property => [
					self::MONGO_NOT_IN => (array) $value
				]];
			
			// var < ?
			case self::COND_LESS:
				return [$property => [
					self::MONGO_LESS => $value
				]];
			
			// var > ?
			case self::COND_MORE:
				return [$property => [
					self::MONGO_MORE => $value
				]];
			
			// var <= ?
			case self::COND_LESS_EQUAL:
				return array($property => array(
					self::MONGO_LESS_EQUAL => $value
				));
			
			// var >= ?
			case self::COND_MORE_EQUAL:
				return [$property => [
					self::MONGO_MORE_EQUAL => $value
				]];
			
			// var != ?
			case self::COND_NOT_EQUAL:
			case self::COND_NOT_EQUAL_ALT:
				return [$property => [
					self::MONGO_NOT_EQUAL => $value
				]];
			
			// var in array(?)
			case self::COND_IN_ARRAY:
				return [$property => [
					self::MONGO_IN_ARRAY => (array) $value
				]];
			
			// var exists(?)
			case self::COND_EXISTS:
				return [$property => [
					self::MONGO_EXISTS => $value
				]];
			
			// var type(?)
			case self::COND_TYPE:
				return [$property => [
					self::MONGO_TYPE => $value
				]];
				
			// var is array()
			case self::COND_IS_ARRAY:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_ARRAY
				]];
			
			// var is int()
			case self::COND_IS_INT:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_INT32
				]];
			
			// var is string()
			case self::COND_IS_STRING:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_STRING
				]];
			
			// var is bool()
			case self::COND_IS_BOOL:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_BOOLEAN
				]];
			
			// var is null()
			case self::COND_IS_NULL:
				return [$property => [
					self::MONGO_TYPE => self::MONGO_TYPE_NULL
				]];
			
			// var regexp(?)
			case self::COND_REGEXP:
				return [$property => new MongoRegex($value)];
			
			// var like ?
			case self::COND_LIKE:
				$regex = preg_quote(trim($value, '%'));
				
				if ($value[0] !== '%') {
					$regex = '^' . $regex;
				}
				
				if ($value[strlen($value) - 1] !== '%') {
					$regex .= '$';
				}
				
				return [$property => new MongoRegex('/' . $regex . '/')];
				
			// var array size ?
			case self::COND_ARRAY_COUNT:
			case self::COND_ARRAY_COUNT_ALT:
				return [$property => [
					self::MONGO_SIZE => $value
				]];
			
			default:
				throw new Exception('Uncnown condition: "' . $condition . '"');
		}
	}
protected function _buildCondition ( $ property , $ condition , $ value ) { switch ( $ condition ) { // var = ? case self :: COND_EQUAL : return [ $ property => $ value ] ; // var in(?) case self :: COND_IN : return [ $ property => [ self :: MONGO_IN => ( array ) $ value ] ] ; // var not in(?) case self :: COND_NOT_IN : return [ $ property => [ self :: MONGO_NOT_IN => ( array ) $ value ] ] ; // var < ? case self :: COND_LESS : return [ $ property => [ self :: MONGO_LESS => $ value ] ] ; // var > ? case self :: COND_MORE : return [ $ property => [ self :: MONGO_MORE => $ value ] ] ; // var <= ? case self :: COND_LESS_EQUAL : return array ( $ property => array ( self :: MONGO_LESS_EQUAL => $ value ) ) ; // var >= ? case self :: COND_MORE_EQUAL : return [ $ property => [ self :: MONGO_MORE_EQUAL => $ value ] ] ; // var != ? case self :: COND_NOT_EQUAL : case self :: COND_NOT_EQUAL_ALT : return [ $ property => [ self :: MONGO_NOT_EQUAL => $ value ] ] ; // var in array(?) case self :: COND_IN_ARRAY : return [ $ property => [ self :: MONGO_IN_ARRAY => ( array ) $ value ] ] ; // var exists(?) case self :: COND_EXISTS : return [ $ property => [ self :: MONGO_EXISTS => $ value ] ] ; // var type(?) case self :: COND_TYPE : return [ $ property => [ self :: MONGO_TYPE => $ value ] ] ; // var is array() case self :: COND_IS_ARRAY : return [ $ property => [ self :: MONGO_TYPE => self :: MONGO_TYPE_ARRAY ] ] ; // var is int() case self :: COND_IS_INT : return [ $ property => [ self :: MONGO_TYPE => self :: MONGO_TYPE_INT32 ] ] ; // var is string() case self :: COND_IS_STRING : return [ $ property => [ self :: MONGO_TYPE => self :: MONGO_TYPE_STRING ] ] ; // var is bool() case self :: COND_IS_BOOL : return [ $ property => [ self :: MONGO_TYPE => self :: MONGO_TYPE_BOOLEAN ] ] ; // var is null() case self :: COND_IS_NULL : return [ $ property => [ self :: MONGO_TYPE => self :: MONGO_TYPE_NULL ] ] ; // var regexp(?) case self :: COND_REGEXP : return [ $ property => new MongoRegex ( $ value ) ] ; // var like ? case self :: COND_LIKE : $ regex = preg_quote ( trim ( $ value , '%' ) ) ; if ( $ value [ 0 ] !== '%' ) { $ regex = '^' . $ regex ; } if ( $ value [ strlen ( $ value ) - 1 ] !== '%' ) { $ regex .= '$' ; } return [ $ property => new MongoRegex ( '/' . $ regex . '/' ) ] ; // var array size ? case self :: COND_ARRAY_COUNT : case self :: COND_ARRAY_COUNT_ALT : return [ $ property => [ self :: MONGO_SIZE => $ value ] ] ; default : throw new Exception ( 'Uncnown condition: "' . $ condition . '"' ) ; } }
Build the condition

@param  string $property
@param  string $condition
@param  mixed  $value
@return array
@throws Exception
Build the condition