Just Fighting
MongoDB와 Python 연결하기 본문
MongoDB 홈페이지에 접속해 로그인을 하고
Organization을 하나 만들고 그 안에 Project를 하나 생성한다.
그럼 아래와 같은 화면이 뜬다.
가운데에 초록색 버튼인 'Build a Database'를 클릭한다.
아래와 같은 페이지가 뜨는데, 거기서 무료인 'Shared'를 선택한다.
그 다음 페이지에서는 aws를 사용할 것이기 때문에 aws를 선택하면되고,
지역은 아시아의 싱가포르를 선택한 뒤, 'Create Cluster'를 누르면 된다.
조금 기다리면 cluster가 생성된다! 생성되면 이 화면이 뜬다.
'Cluster0' 옆에 'Connect'를 누르면 다음과 같은 화면이 뜬다.
'Allow Access from Anywhere'을 누르고, IP 바꾸지말고 그대로 등록한다.
username과 password를 입력한 뒤 'Create Database User'를 클릭한다.
다음 화면이다. 두번째인 'Connect your application'을 선택한다.
파이썬을 사용하기 때문에 DRIVER는 Python으로 선택하고
VERSION은 컴퓨터에 깔려있는 파이썬 버전에 맞게 설정한다.
그리고 밑에 코드를 복사한다.
연결을 위해서 라이브러리를 설치해야한다.
앞서서 사용했던 방법으로 pymongo와 dnspython을 설치한다.
(참고 : 2022.01.12 - [Web/백엔드] - 웹 크롤링하기 )
파이참에 python파일을 하나 만들고 테스트를 해보자.
아래와 같은 코드를 사용한다. 복사한 코드에 위에서 복사한 코드를 넣으면 되고,
<password>에 아까 작성했던 password를 넣으면 되고,
myFirstDatabase자리에 아까 눌렀던 connect버튼 옆에 써있는 것을 넣으면 된다. (나는 Cluster0)
from pymongo import MongoClient
client = MongoClient('복사한코드')
db = client.데이터베이스이름
from pymongo import MongoClient
client = MongoClient('mongodb+srv://yeeun:<password>@cluster0.pasxm.mongodb.net/myFirstDatabase?retryWrites=true&w=majority')
db = client.데이터베이스이름
데이터를 하나 넣어보자!
hobby는 데이터베이스 이름이고, test는 데이터베이스 안에 collection이름이다.
컬렉션은 없으면 알아서 생성되기 때문에 상관할 필요 없다!
아래 코드에 username과 password, 클러스터이름을 넣고 실행하면 된다.
혹시나 실행이 되지 않고 오류가 난다면 mongoDB를 다운받지 않아서 그런 것이다. (내가 그랬다 ㅎㅎ)
사진과 같이 데이터가 잘 들어간 것을 확인할 수 있다!
from pymongo import MongoClient
client = MongoClient('mongodb+srv://yeeun:<password>@cluster0.pasxm.mongodb.net/myFirstDatabase?retryWrites=true&w=majority')
db = client.hobby
doc = {'name':'bobby','age':21}
db.test.insert_one(doc)
<저장>
doc = {'속성1':'값1','속성2':'값2'}
db.컬렉션.insert_one(doc)
<조회>
# 한 개 조회
data = db.컬렉션.find_one({'속성':'값'})
# 여러 개 조회 ( _id 값은 제외하고 출력)
all_data = list(db.컬렉션.find({},{'_id':False}))
<수정>
# 수정
db.컬렉션.update_one({'조건속성':'조건값'},{'$set':{'바꿀속성':'바꿀값'}})
<삭제>
# 삭제
db.컬렉션.delete_one({'속성':'값'})
'Web > 백엔드' 카테고리의 다른 글
[Flask] MongoDB에 데이터 저장하고 받아오기 (0) | 2022.02.21 |
---|---|
API 만들기 (0) | 2022.01.19 |
Flask 시작하기 (0) | 2022.01.19 |