Ejemplo n.º 1
0
 def read_data(self, table_name, field=None, **kw):
     """
     一个简易的数据读取接口
     :param table_name:
     :param field:
     :param kw:
     :return:
     """
     try:
         cursor = BaseModel(table_name, self.location,
                            self.dbname).query(kw, field)
         data = pd.DataFrame()
         if cursor.count():
             data = pd.DataFrame(list(cursor))
     except Exception as e:
         raise e
         # ExceptionInfo(e)
     finally:
         cursor.close()
         return data
Ejemplo n.º 2
0
 def insert_one(self, table_name, data):
     """
     insert one record
     :param table_name:
     :param data: a dict
     :return:
     """
     try:
         BaseModel(table_name, self.location, self.dbname).insert(data)
     except Exception as e:
         raise e
Ejemplo n.º 3
0
 def remove_data(self, table_name, **kw):
     """
     删除数据
     :param table_name:
     :param kw:
     :return:
     """
     try:
         r = BaseModel(table_name, self.location, self.dbname).remove(kw)
         return r
     except Exception as e:
         raise e
Ejemplo n.º 4
0
    def aggregate(self, table_name, pipeline):
        """

        :param table_name:
        :param pipeline:
        :return:
        """
        try:
            cursor = BaseModel(table_name, self.location,
                               self.dbname).aggregate(pipeline)
            # data = pd.DataFrame()
            # if cursor.count():
            data = pd.DataFrame(list(cursor))

        except Exception as e:
            raise e
            # ExceptionInfo(e)

        finally:
            cursor.close()
            return data
Ejemplo n.º 5
0
 def min(self, table_name, field='_id', **kw):
     """
     找到满足kw条件的field列上的最小值
     :param table_name:
     :param field:
     :param kw:
     :return:
     """
     try:
         if not isinstance(field, str):
             raise TypeError('field must be an instance of str')
         cursor = BaseModel(table_name, self.location,
                            self.dbname).query(sql=kw, field={field: True})
         if cursor.count():
             d = pd.DataFrame(list(cursor))
             m = d.loc[:, [field]].min()[field]
         else:
             m = None
         cursor.close()
         return m
     except Exception as e:
         raise e
Ejemplo n.º 6
0
 def field(self, table_name, field_name, filter=None):
     """
     Query the value of a field in the database
     :param filter:
     :param table_name: the database's table name
     :param field_name: the table's field name
     :return: all values in database
     """
     try:
         return BaseModel(table_name, self.location,
                          self.dbname).distinct(field_name, filter)
     except Exception as e:
         raise e
Ejemplo n.º 7
0
 def update_data(self, table_name, condition, **kw):
     """
     按condition条件更新table_name表数据
     :param table_name:
     :param condition: 形如{‘date':datetime.datetime(2018,1,1)}的一个字典
     :param kw:形如close=0这样的参数组
     :return:
     """
     try:
         r = BaseModel(table_name, self.location,
                       self.dbname).update_batch(condition, kw)
         return r
     except Exception as e:
         raise e
Ejemplo n.º 8
0
 def insert_data(self, table_name, data):
     """
     一个简易的数据插入接口
     :param table_name:
     :param data:
     :return:
     """
     try:
         if len(data):
             data['datetime'] = data.index
             data['insertdate'] = datetime.datetime.today()
             d = data.to_dict(orient='records')
             BaseModel(table_name, self.location,
                       self.dbname).insert_batch(d)
     except Exception as e:
         raise e
Ejemplo n.º 9
0
 def read_one(self, table_name, field=None, **kw):
     """
     有时候只需要读一条数据,没必要使用read_data,
     :param table_name:
     :param field:
     :param kw:
     :return: a dict or None
     """
     try:
         cursor = BaseModel(table_name, self.location,
                            self.dbname).query_one(kw, field)
     except Exception as e:
         raise e
         # ExceptionInfo(e)
     finally:
         return cursor