VashuTheGreat's picture
Added
51f7cb3
import sys
import pandas as pd
import numpy as np
from typing import Optional
import logging
from src.configuration.mongo_db_connections import MongoDBClient
from src.constants import DATABASE_NAME_KEY
from src.exception import MyException
class Proj1Data:
def __init__(self)->None:
try:
self.mongo_client=MongoDBClient(database_name=DATABASE_NAME_KEY)
except Exception as e:
raise MyException(e,sys)
async def connect(self):
logging.info("Connecting to database")
await self.mongo_client.connect()
async def export_collection_as_dataframe(self,collection_name:str,database_name: Optional[str] = None)->pd.DataFrame:
try:
if database_name is None and collection_name:
logging.debug(f"collection using collection name {collection_name}")
collection=self.mongo_client.database[collection_name]
else:
logging.debug(f"collection using datase name {database_name}")
collection=self.mongo_client[database_name][collection_name]
logging.debug(f"Collection we found is {collection}")
logging.info("Fetching Data from MongoDB")
df=pd.DataFrame(await collection.find().to_list(length=None))
logging.info("Data Fetched from MongoDB")
if "id" in df.columns.to_list():
df = df.drop(columns=["id"], axis=1)
df.replace({"na":np.nan},inplace=True)
return df
except Exception as e:
raise MyException(e,sys)