Spaces:
Sleeping
Sleeping
File size: 1,007 Bytes
0f24635 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
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)
|