Пример #1
0
 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
Пример #2
0
    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)
Пример #3
0
    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
Пример #4
0
    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
Пример #5
0
 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