QuentinL52's picture
Upload 13 files
0f24635 verified
from motor.motor_asyncio import AsyncIOMotorDatabase
from pydantic import BaseModel
from bson import ObjectId
class BaseMongoModel(BaseModel):
id: str | None = None
@classmethod
async def get(cls, db: AsyncIOMotorDatabase, collection: str, query: dict):
return await db[collection].find_one(query)
@classmethod
async def get_all(cls, db: AsyncIOMotorDatabase, collection: str, query: dict = {}):
return await db[collection].find(query).to_list(1000)
@classmethod
async def create(cls, db: AsyncIOMotorDatabase, collection: str, data: dict):
result = await db[collection].insert_one(data)
return str(result.inserted_id)
@classmethod
async def update(cls, db: AsyncIOMotorDatabase, collection: str, query: dict, data: dict):
await db[collection].update_one(query, {"$set": data})
@classmethod
async def delete(cls, db: AsyncIOMotorDatabase, collection: str, query: dict):
await db[collection].delete_one(query)