python

[Python]파이썬에서 mongoDB 연결 및 조작

개발 공주 2023. 5. 18. 23:50
728x90

1) mongoDB - Atlas 연결하기

  • 패키지 설치하기 ==> pymongo, dnspython
pip install pymongo dnspython

 

  • pymongo로 조작하기
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta

#pymongo 기본 코드
  • mongoDB와 Python 연결하기
    • 1) mongo atlas 화면에서 Connect를 클릭
    • 2) 연결 방법 화면에서 Drivers을 클릭
    • 3) 드라이버를 Python으로 버전을 3.6 or later로 클릭하신뒤, 아래에 생성된 링크 버튼을 클릭해 주소를 복사해주기
    • 4) url 복사 붙여 넣기
    • 5) password 부분 수정하기

 

잘 연결 됐는지 테스트해보기

1 ) Insert

from pymongo import MongoClient
import certifi # 오류나서 추가

ca = certifi.where() # 오류나서 추가

client = MongoClient('mongodb+srv://DB이름:비밀번호@cluster0.2xxwxhc.mongodb.net/?retryWrites=true&w=majority', tlsCAFile=ca) # 오류나서 추가
db = client.dbsparta

doc = {
    'name' : '영수',
    'age' : 24
}

db.users.insert_one(doc)

Collections를 확인하면 데이터가 잘 들어온 것을 확인 할 수 있다.

2 ) select

from pymongo import MongoClient
import certifi

ca = certifi.where()

client = MongoClient('mongodb+srv://이름:비밀번호@cluster0.2xxwxhc.mongodb.net/?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.dbsparta

# 모든 데이터 뽑아보기
all_users = list(db.users.find({},{'_id':False}))

print(all_users[0])         # 0번째 결과값을 보기
print(all_users[0]['name']) # 0번째 결과값의 'name'을 보기

for a in all_users:      # 반복문을 돌며 모든 결과값을 보기
    print(a)
    
user = db.users.find_one({}) #특정 결과 값 뽑아 보기
print(user)

3 ) update

db.users.update_one({'name':'영수'},{'$set':{'age':19}})

user = db.users.find_one({'name':'영수'}) # 특정값 select
print(user)

4 ) delete_one

db.users.delete_one({'name':'영수'})

user = db.users.find_one({'name':'영수'})
print(user)

 

마무리 요약

# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)

# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})

# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))

# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

# 지우기 - 예시
db.users.delete_one({'name':'bobby'})

'python' 카테고리의 다른 글

[Python]파이썬 시작하기  (0) 2023.05.18