| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 | #!/usr/bin/env python3  # -*- coding: utf-8 -*-  """@Copyright (C) ansjer cop Video Technology Co.,Ltd.All rights reserved.@AUTHOR: ASJRD018@NAME: Ansjer@software: PyCharm@DATE: 2018/6/15 14:18@Version: python3.6@MODIFY DECORD:ansjer dev@file: mongodb.py@Contact: chanjunkai@163.com"""# !/usr/bin/python3import pymongoimport mathfrom Ansjer.config import SERVER_TYPE# SERVER_TYPE = 'local'class mongodb(object):    def __init__(self):        # sysstr = platform.system()        # if (sysstr == "Windows"):        #     myclient = pymongo.MongoClient('mongodb://192.168.136.45:27017/')        # elif (sysstr == "Linux"):        #     print("Call Linux tasks")        #     myclient = pymongo.MongoClient()        if SERVER_TYPE == 'Ansjer.local_settings':            self.myclient = pymongo.MongoClient('mongodb://192.168.136.45:27017/')            self.db =  self.myclient['ansjer']        elif SERVER_TYPE == 'Ansjer.test_settings':            self.myclient = pymongo.MongoClient()            self.db =  self.myclient['test_ansjer']        elif SERVER_TYPE == 'Ansjer.formal_settings':            self.myclient = pymongo.MongoClient()            self.db = self.myclient['ansjer']    # 创建mongodb的数据库名称    def check_db_exist(self, database):        dblist = self.myclient.database_names()        if database in dblist:            print("数据库存在")            return True        else:            print("数据库不存在")            return False    def insert_one(self, col, data):        column = self.db[col]        res = column.insert_one(data)        return res.inserted_id    def findAll(self, col,page,line,query):        collist = self.db.collection_names()        if col in collist:  # 判断 customers 集合是否存在            # qs = self.db[col].find()            if int(page) < 0:                count = mdb.cout(col=col, query=query)                total = math.ceil(count / int(line))                page = int(total) + int(page) + 1            qs = self.db[col].find(query).sort("_id", -1)            count = qs.count()            if page != 0 and line != 0:                qs = qs.skip((page - 1) * 10).limit(line)            # print(count)            data = []            for q in qs:                q.pop('_id')                if 'et' in q:                    q.pop('et')                data.append(q)            res_dict = {'data': data, 'count': count}            return res_dict        else:            print("集合不存在!")            return False    #获取col总数    def cout(self,col,query):        collist = self.db.collection_names()        if col in collist:  # 判断 customers 集合是否存在            # qs = self.db[col].find()            qs = self.db[col].find(query)            count = qs.count()        return count    # 删除集合(//删除表)    def drop_col(self,col):        column = self.db[col]        column.drop()        returnif __name__ == '__main__':    mdb = mongodb()    col = "log_device_operation"    # col = "log_access"    # mdb.drop_col(col)    # exit()    # data = {"name": "111", "address": "Lowstreet 27"}    # flag = mdb.insert_one(col=col, data=data)    # qs = mdb.findAll(col=col, page=1, line=10,query={'UID':'C2887N9EBS87ZAT1111A'})    # print(qs)    '''创建索引'''    # from pymongo import ASCENDING, DESCENDING    ss = mdb.db[col].create_index([('type',1)])    # ss = mdb.db[col].create_index([('time',1)])    #print(ss)    ''''''    '''    604800    '''    '''    增加过期时间    '''    mdb.db[col].create_index([("et", 1)], expireAfterSeconds=604800)    # mdb.db[col].create_index([("et", 1)], expireAfterSeconds=1209600)    '''    删除索引    '''
 |