일단 MongoDB와 python을 연동시키기 위해서는 python 라이브러리인 pymongo가 있어야 한다.
cmd창을 열고
와 같이 pymongo를 다운받도록 한다.
이후 간단한 crud를 해보도록 할건데, 미리 CRUD관련된 클래스를 만들어두고 쓰면 편리하기 때문에,
구현 해두고 확인해보겠습니다.
from pymongo import MongoClient
from pymongo.cursor import CursorType
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
1)위 와 같이 mongodb로 미리 생성해둔 데이터베이스 pymongo에 {"text":"Hello Python"}데이터를 입력시켰습니다.
2)mongo script로 확인해보니 잘 들어가 있습니다.
3)클래스에 있는 mongoDB 데이터 확인 메소드로도 확인을 해보았습니다.
4)find_item_one 메소드는 가장 첫줄에 나온 데이터를 보여주었고
find_item 메소드는 해당 커서 객체값을 16진수로 보여주었습니다.
#delete_item, update_item 등 나머지의 메소드들고 마찬가지로 클래스에 구현된대로 적용해보면 연동이 된 것을 알 수 있습니다.
'DataBase > NoSQL' 카테고리의 다른 글
[NoSQL] MongoDB Index 생성,예제,효율확인 (0) | 2021.01.19 |
---|---|
[NoSQL] MongoDB capped collection, TTL collection (0) | 2021.01.19 |
[NOSQL] MongoDB Shell(명령어)로 CSV, JSON import 해보기 (0) | 2021.01.11 |
[NOSQL] MongoDB의 역할 및 활용 사례 (0) | 2021.01.08 |
[NOSQL]MongoDB 기본 명령어 (1) | 2021.01.07 |
댓글