public function where($condition, $value = null, $type = null) {
		if (strpos($condition, '||')) {
			$conditions = explode('||', $condition);
			$conditions = array_map('trim', $conditions);
			
			$conditionParts = [];
			
			foreach ($conditions as $condition) {
				list($property, $condition, $valueCond) = $this->_parseCondition($condition);
				if ($valueCond !== '?') {
					$value = is_numeric($valueCond) ? $this->_parseNumeric($valueCond) : $valueCond;
				}

				$conditionParts[] = $this->_buildCondition($property, $condition, $value);
			}
			
			$this->_addCondition([self::MONGO_OR => $conditionParts]);
		} else {
			list($property, $condition, $valueCond) = $this->_parseCondition($condition);
			
			if ($valueCond !== '?') {
				$value = is_numeric($valueCond) ? $this->_parseNumeric($valueCond) : $valueCond;
			}
			
			$mongoCondition = $this->_buildCondition($property, $condition, $value);
			$this->_addCondition($mongoCondition);
		}
		
		return $this;
	}