6、python-mongodb获取数据存储到sql server

微信公众号:[技术清点]
关注可了解更多信息。问题或建议,请公众号留言;

说明

业务场景:
需要把一个nodejs做的系统里获取订单信息导入到公司内部OA系统,直接使用接口麻烦不方便,且功能太少,不同技术的人配合显得小题大做,因此直接进行脚本编写,

主要功能是从mongodb上获取订单,传输到sql server,这里主要是定时任务执行的脚本

创建连接

下面是主要连接mongodb并读取集合,并按时间段查询

# 要先导入客户才能导入订单
xwclient = pymongo.MongoClient("mongodb://xx.xx.xx.xxx:10xxx/")
xwdb = xwclient["xx_webchecker_xx"]

collist = xwdb.list_collection_names()
if "orderlogs" not in collist:   # 判断 orderlogs 集合是否存在
   print("集合orderlogs不存在!")
   return False

orderLists = xwdb["orderlogs"]
currTime = self.beforeMinuts(7)
#currTime = parser.parse('2019-08-20T00:00:00Z')
        
qryOrders = {
    "paySuccessTime" : {
    "$gte" : currTime}, "status" : "SUCCESS","orderNo":{
   "$ne":"null", "$exists":"true"} }

公共脚本

这里面使用的sql server是重复编写,可以以类文件的方式直接引入;

    # sel server连接
    def conn_mssql(self):
        if self.__connMssql is None:
            self.__connMssql = pymssql.connect(host="xx.xx.xx.xx", user="xx", password="xx", database="crm", charset="utf8",autocommit=True)
        self.curMssql = self.__connMssql.cursor()

    # 执行操作数据的相关sql
    def execute_mssql(self, sql, data=None):
        try:
            self.conn_mssql()
            if data is None:
                self.curMssql.execute(sql)
            else :
                self.curMssql.execute(sql, data)
            
            # sql server 执行无返回结果
            # self.curMssql.commit() 无此方法
        except Exception:
            print("执行保存或更新失败.....", traceback.print_exc())
        finally:
            return False  #self.close_mssql()
        

    def search_mssql(self, sql):
        """执行查询sql"""
        self.conn_mssql()
        self.curMssql.execute(sql)
        return self.curMssql.fetchall()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值