欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python-mongodb 增删改查 简单的函数封装

程序员文章站 2022-05-30 12:28:15
...

python-mongodb 增删改查 简单的函数封装

pytho用于连接mongodb的第三方库:
pip install pymongo

基础信息

# coding=utf-8
import pymongo

地址 = "mongodb://192.168.150.182:27017/"
库 = "库名"
表 = "表名"
用于排序的字段 = "_id"

增加文档

# 插入值必须为列表类型数据,一条数据使用一个位置
def mongo增(插入值=None):

    if 插入值==None:#判断插入值是否为空
        print("请输入需要插入的值")# 如果为空提示输入插入值
    else:
        myclient = pymongo.MongoClient(地址)#如果不为空,创建数据库连接”mycol“
        mydb = myclient[库]
        mycol = mydb[表]

        for i in 插入值:#循环写入插入值
            mycol.insert_many([i])#写入单个插入值

        已插入的条数=0#定义原始已插入条数为0
        for i in 插入值:
            mydoc = mycol.find(i)#确定插入值是否插入成功
            for i in mydoc:
                print(i)#打印已成功插入的文档
            已插入的条数=已插入的条数+1#找到一个已成功插入的条目就将已插入的条数+1

        print("已插入:  "+str(已插入的条数)+"  条文档")#打印输出信息:可以使用return


mongo增(插入值=[{'aa':11,'bb':12,'cc':13},
            {'aa':11,'bb':12,'cc':13},
            {'aa':11,'bb':12,'cc':13}])

删除文档

# 删除方式是已删除条件为准,通过排序字段进行删除
def mongo删(删除条件={}, 删除条数=1, 排序字段="_id", 排序方式=1):

    myclient = pymongo.MongoClient(地址)  # 定义数据库连接
    mydb = myclient[库]
    mycol = mydb[表]

    myquery = 删除条件
    mydoc = mycol.find(myquery)
    mydoc.limit(删除条数)  # 近100条消息
    mydoc.sort(排序字段, 排序方式)  # 根据期号进行降序

    已删除文档个数 = 0
    for i in mydoc:

        print(i)

        删除类型 = i[排序字段]
        myquery = {排序字段: 删除类型}
        x = mycol.delete_many(myquery)
        已删除文档个数 = 已删除文档个数 + x.deleted_count

    print(已删除文档个数, "个文档已删除")


mongo删(删除条件={'aa':11}, 删除条数=10, 排序字段="_id", 排序方式=1)

修改文档

# 修改值必须为需修改字段的完整内容
def mongo改(修改值, 修改字段="", 查询条件={}, 修改条数=100, 排序字段="_id", 排序方式=1):
    
    myclient = pymongo.MongoClient(地址)  # 定义数据库连接
    mydb = myclient[库]
    mycol = mydb[表]
    
    myquery = 查询条件
    mydoc = mycol.find(myquery)
    mydoc.limit(修改条数)  # 近100条消息
    mydoc.sort(排序字段, 排序方式)  # 根据期号进行降序
    
    for i in mydoc:
        原始值 = i[修改字段]
        修改值 = 修改值
        myquery = {修改字段: 原始值}
        newvalues = {"$set": {修改字段: 修改值}}
        mycol.update_one(myquery, newvalues)

    myquery = 查询条件
    mydoc = mycol.find(myquery)
    mydoc.limit(修改条数)  # 近100条消息
    mydoc.sort(排序字段, 排序方式)  # 根据期号进行降序
    
    for i2 in mydoc:
        print(i2)
        
    print("已删除文档个数:"+str(len(mydoc)))
   
    
mongo改(修改值={'aa':18}, 修改字段="kas", 查询条件={'aa':20}, 修改条数=100, 排序字段="_id", 排序方式=1)

查询文档

# 排序方式1正序,-1是倒序;排序字段默认为id可以自行修改
def mongo查(查询条件={}, 查询条数=100, 排序字段="_id", 排序方式=-1):
    
    myclient = pymongo.MongoClient(地址)  # 定义数据库连接
    mydb = myclient[库]
    mycol = mydb[表]
    
    myquery = 查询条件
    mydoc = mycol.find(myquery)
    mydoc.limit(查询条数)  # 近100条消息
    mydoc.sort(排序字段, 排序方式)  # 根据期号进行降序
    
    for i in mydoc:
        print(i)


mongo查(查询条件={'aa':18}, 查询条数=50, 排序字段="_id", 排序方式=-1)