python3 封装mongo

本文介绍了Python3中封装MongoDB的基本思路,旨在简化爬虫数据存储。虽然封装可以提高便利性,但仍然需要对MongoDB的操作有一定的了解,特别是面对复杂的查询。文中展示了封装的目录结构,包括连接信息、数据库操作的静态方法以及各数据库操作类的设计。
摘要由CSDN通过智能技术生成

封装初衷

mongo的特性比较适合爬虫数据 的存储。 基本的封装使用起来比较方便。但是这里要说的是即便风转了还不能像关系型数据库那样, 直接传入Data 数据就可以, 这里灵活性比较大。 使用者传入data的时候还是要对mongodb 的sql 操作比较熟悉。 比如大于小于等。 哪些比较复杂的就没有那么好封装了。 这里使用面向对象的思想, 但是 不是封装一个 ORM 对象关系型映射。

先看下目录结构

这里写图片描述

mongodb_base 和mongo 连接的信息
mongodb_operation 静态方法 用来和mongodb 操作交互
db_base 操作所有数据库的公共方法 , 其他db 继承这个父类, 子类个性化操作数据库的方法

mongo_db 放操作各个表的类

文件中的内容

从上到下
db_base.py

from sprider.mongo_base.mongodb_base import MG
from sprider.mongo_base.mongodb_operation import BaseHandle


class DBBase(object):
    """ 各种query 中的数据 data 和 mongodb 文档中的一样"""

    def __init__(self, collection):
        self.mg = MG()
        self.collection = self.mg.db[collection]

    def insert_one(self, data):
        res = BaseHandle.insert_one(self.collection, data)
        return res

    def insert_many(self, data_list):
        res = BaseHandle.insert_many(self.collection, data_list)
        return res

    #  ========================= Query Documents Start =========

    def find_one(self, data, data_field={}):
        res = BaseHandle.find_one(self.collection, data, data_field)
        return res

    def find_many(self, data, data_field={}):
        """ 有多个键值的话就是 AND 的关系"""
        res = BaseHandle.find_many(self.collection, data, data_field)
        return res

    def find_all(self, data={}, data_field={}):
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值