728x90
반응형
1. python에서 mongoDB용 library를 설치한다.
python -m pip install pymongo
확인해보기
from pymongo import MongoClient
from pymongo.cursor import CursorType
host = "localhost"
port = "27017"
mongo = MongoClient(host, int(port))
print(mongo)
2. python에서 mongoDB CRUD를 위한 Class를 작성한다.
class DBHandler:
def __init__(self):
host = "localhost"
port = "27017"
self.client = MongoClient(host, int(port))
def insert_item_one(self, data, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].insert_one(data).inserted_id
return result
def insert_item_many(self, datas, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].insert_many(datas).inserted_ids
return result
def find_item_one(self, condition=None, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].find_one(condition, {"_id": False})
return result
def find_item(self, condition=None, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].find(condition, {"_id": False}, no_cursor_timeout=True, cursor_type=CursorType.EXHAUST)
return result
def delete_item_one(self, condition=None, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].delete_one(condition)
return result
def delete_item_many(self, condition=None, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].delete_many(condition)
return result
def update_item_one(self, condition=None, update_value=None, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].update_one(filter=condition, update=update_value)
return result
def update_item_many(self, condition=None, update_value=None, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].update_many(filter=condition, update=update_value)
return result
def text_search(self, text=None, db_name=None, collection_name=None):
result = self.client[db_name][collection_name].find({"$text": {"$search": text}})
return result
3. 데이터를 하나 넣어보자.
mongo = DBHandler()
insert_item_one(mongo, {"id": "node01", "type":"normal"}, "RawData", "Node")
새로 고침 후 Node collection에서 다음을 확인할 수 있다.
여러 개의 data를 넣어서 다음과 같이 filtering 해서 볼 수도 있다.
총 99개의 data 중 90개의 결과가 나온다.
넣은 데이터들을 python에서 다시 읽어보자.
조건을 넣어서 필터링하면 다음과 같이 나온다.
import pandas as pd
mongo = DBHandler()
Node = pd.DataFrame(mongo.find_item({'type': 'normal'}, 'RawData', 'Node'))
728x90
반응형
'DB > DataBase' 카테고리의 다른 글
[MongoDB] MongoDB 설치하기 (0) | 2022.02.15 |
---|---|
[MariaDB]CRUD (0) | 2021.02.16 |