脚本功能:本脚本针对mongoDB数据库,提供增删改查方法的封装。
用途:
1、支持数据存储,数据备份
2、支持数据查询,可通过增加数据分析脚本进行串联使用
说明:一下所有参数及方法的备注,均来自于常见的称呼,非mongoDB数据库规定名称
如有需要更改或不足之处,欢迎各位反馈宝贵意见
import pymongo
import logging
import datetime
import sys
#日志环境配置
logging.basicConfig(format='%(asctime)s | %(pathname)s | line:%(lineno)d | %(levelname)s | %(message)s',
level=logging.DEBUG, filemode='a',
filename='D:\\IVLogs\\' + datetime.datetime.now().strftime('%Y%m%d') + '_PY.log')
rf_handler = logging.StreamHandler(sys.stderr)
rf_handler.setLevel(logging.DEBUG)
rf_handler.setFormatter(logging.Formatter('%(asctime)s | %(pathname)s | line:%(lineno)d | %(levelname)s | %(message)s'))
logging.getLogger().addHandler(rf_handler)
class mongoDB_Operation:
"""
函数功能:初始化加载参数
"""
def __init__(self,database,datatable):
self.myclient = pymongo.MongoClient('mongodb://localhost:27017/')
self.database = database
self.mybd = self.myclient[database]
self.mycol = self.mybd[datatable]
"""检查数据库是否存在"""
def checkDataBase(self):
dblist = self.myclient.list_database_names()
if self.database in dblist:
logging.info("数据库:%s 存在"%self.database)
self.isCheckOK = 1
else:
logging.info("数据库:%s 不存在"%self.database)
self.isCheckOK = 0
"""数据库操作:增(insert)"""
"""函数功能:插入一条数据"""
def insert_one(self,tupstr):
try:
result = self.mycol.insert_one(tupstr)
logging.info("数据插入成功:%s"%result.inserted_id)
except Exception as e:
logging.info("执行函数:insert_one失败,错误信息%s"%e)
"""函数功能:插入多条数据"""
def insert_many(self,listStr):
try:
result = self.mycol.insert_many(listStr)
logging.info("数据插入成功:%s"%result.inserted_ids)
except Exception as e:
logging.info("执行函数:insert_many失败,错误信息:%s"%e)
"""数据库操作;查找(find)"""
"""函数功能:查找表中第一条元素"""
def find_one(self):
try:
self.checkDataBase()
if self.isCheckOK ==0:
logging.info("当前数据库不存在,无法执行查询操作")
return
dit =self.mycol.find_one()
logging.info("首数据查询成功")