def Or(self,expression,*args,**kwargs): params = get_param_kw(*args,**kwargs) ret=None if type(params) is list: ret=self._pipe=expr.parse_expression_to_json_expression(expression, *params) else: ret=self._pipe=expr.parse_expression_to_json_expression(expression, params) self._pipe.update({ "$or": ret }) return self
def __init__(self,expression,*args,**kwargs): """ :param expression: :param args: :param kwargs: """ self._pipe = {} params = get_param_kw(*args,**kwargs) if type(params) is list: self._pipe=expr.parse_expression_to_json_expression(expression, *params) else: self._pipe=expr.parse_expression_to_json_expression(expression, params)
def match(self, expression, *args, **kwargs): # type: (str,int) -> aggregate_expression # type: (str,bool) -> aggregate_expression # type: (str,str) -> aggregate_expression # type: (str,unicode) -> aggregate_expression # type: (str,datetime) -> aggregate_expression # type: (str,dict) -> aggregate_expression # type: (str,tuple) -> aggregate_expression # type: (str,list) -> aggregate_expression # type: (str,float) -> aggregate_expression """ Create mongodb match aggregate Caution! You could not use any Aggregation Pipeline Operators, just use this function with Field Logic comparasion such as: and,or, contains,==,!=,>,<,.. Exmaple match("username=={0} and password== {1}",'admin','1234) :param expression: Example "a=={0}" with 0 is index of params :param args: :param kwargs: :return: """ if args == (): args = kwargs if type(expression) is dict: self._pipe.append({"$match": expression}) return self if type(expression) is str: self._pipe.append({ "$match": expr.parse_expression_to_json_expression(expression, args) }) return self pass
def match(self, expression, *args, **kwargs): """Beware! You could not use any Aggregation Pipeline Operators, just use this function with Field Logic comparasion such as: and,or, contains,==,!=,>,<,.. """ if args == (): args = kwargs if type(expression) is dict: self._pipe.append({"$match": expression}) return self if type(expression) is str: self._pipe.append({ "$match": expr.parse_expression_to_json_expression(expression, args) }) return self pass
def filter(self, expression, *params): self._expr = expression if type(expression) is str: self._expr = expr.parse_expression_to_json_expression( expression, *params) return self