728x90
반응형
파이썬과 MongoDB를 연동
- 파이썬에서 MongoDB에 질의를 해서 결과를 파이썬 프로그램에서 확인
- 파이썬 설치
- https://www.python.org/downloads/에서 파이썬 다운로드(3.11버전)
- https://code.visualstudio.com/에서 Visual Studio Code 설치
- MongoDB 연동을 위한 라이브러리 "pymongo" 설치
// 터미널에서 실행
pip install pymongo
- MongoDB 연결
- 27017 포트 사용
import pymongo as mg
# 몽고 디비 연결
conn = mg.MongoClient("mongodb://localhost:27017")
- 데이터 베이스 선택
# Database 선택
db = conn['testDB']
- 컬렉션 선택
# Collection 선택
rating = db['rating']
- 질의 수행
# 질의1 - insertOne
doc = {"test":"Python을 통해 삽입한 문서"}
x = col.insert_one(doc)
print("Object_id :",x.inserted_id)
# 질의2 - insertMany
doc1 = {"test1":"Python을 통해 삽입한 문서1"}
doc2 = {"test2":"Python을 통해 삽입한 문서2"}
doc3 = {"test3":"Python을 통해 삽입한 문서3"}
x = col.insert_many([doc1,doc2,doc3])
print("Object_ids :",x.inserted_id)
# 질의3 - find_one()
result = col.find_one()
print(result)
# 질의4 - find()
for idx,r in enumerate(col.find()):
print(f"{idx+1} -",r)
# 질의5 - find() 조건의 질의
rating = db['rating']
for r in rating.find({},{"_id":0,"user_id":1}):
print(r)
# 질의6 - aggregate
text = db['text']
pipeline = [{"$project":{"upper":{"$toUpper":"$text1"}}}]
for r in text.aggregate(pipeline):
print(r)
MongoDB 활용 모듈 만들기
import pymongo as mg
class MOGO:
def __init__(self,db,col):
self.__conn = mg.MongoClient("mongodb://localhost:27017")
self.__db = self.__conn[db]
self.__col = self.__db[col]
def change_db(self,db):
self.__db = self.__conn[db]
def change_col(self,col):
self.__col = self.__db[col]
def DB(self):
return self.__db
def COL(self):
return self.__col
def insertOne(self,doc):
x = self.__col.insert_one(doc)
return x
def insertMany(self,docs):
x = self.__col.insert_many(docs)
return x
def find(self, query={}, projection={}):
return self.__col.find(query,projection)
def aggregation(self,stages):
return self.__col.aggregate(stages)
from mongo import MOGO
mg = MOGO("testDB","rating")
for i in mg.find({},{"_id":0,"_rating":1,"user_id":1}):
print(i)
mg.change_col("text")
for i in mg.aggregation([{"$project":{"Lower":{"$toLower":"$text2"}}}]):
print(i)
728x90
반응형
'DB > MongoDB' 카테고리의 다른 글
[MongoDB] 18. 데이터 모델링과 인덱스 - 인덱스 (0) | 2022.12.18 |
---|---|
[MongoDB] 17. 데이터 모델링과 인덱스 - 데이터 모델링 (0) | 2022.12.18 |
[MongoDB] 16. 집계명령어 - 트랜잭션 (0) | 2022.12.18 |
[MongoDB] 15. 집계명령어 - 다양한 연산자, 뷰 (0) | 2022.12.17 |
[MongoDB] 14. 집계명령어 - 고급 스테이지, 여러가지 스테이지 (0) | 2022.12.17 |