File size: 1,605 Bytes
51f7cb3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
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)