Python MongoDB 简单封装
在项目中将MongoDB服务封装成服务类,并实现具体增删改查方法。在此记录一下(思路如下,具体实现还需依具体开发场景而定)。
import numpy as np
import pymongo
class Mongo:
port = 27017
host = 'localhost'
client = None
db_name = 'jol'
def __init__(self):
self.client = pymongo.MongoClient(host=self.host, port=self.port)
# 更新功能
def update_pro_score(self, pro_info):
table_name = 'pro_info'
db = self.client[self.db_name]
collist = db.list_collection_names()
if table_name in collist: # 判断 sites 集合是否存在
db[table_name].drop()
pro = db[table_name]
pro.insert_many(pro_info.to_dict("records_info"))
# 实现分页
def info_page_number(self, n, pagesize, user_id):
table_name = 'rank_info'
db = self.client[self.db_name]
res = []
count = 0
for i in db[table_name].find({"user_id": {"$regex": user_id}}):
count = count + 1
for i in db[table_name].find({"user_id": {"$regex": user_id}}).skip(pagesize * (n - 1)).limit(pagesize):
res.append({
"user_id": i['user_id'],
"accepted": i['solved'],
"submit": i['submit'],
"rank": i['rank']
})
return {"data": res, "sum": count}
# 更新功能
def rec_pro(self, user_id):
table_name = 'rank_info'
db = self.client[self.db_name]
query = {"user_id": user_id}
return db[table_name].find_one(query)['rec']
使用方法
mongo = Mongo()
mongo.pro_info(1001)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构