ecoEarth 2022. 11. 2. 12:43

1. pymongo 설치

pymongo 라이브러리의 역할 예를 들어, MS Excel를 파이썬으로 조작하려면, 특별한 라이브러리가 필요하지 않을까?

마찬가지로, mongoDB 라는 프로그램을 파이썬으로 조작하려면, 특별한 라이브러리, pymongo가 필요하다.

 

pumongo 기본 코드

from pymongo import MongoClient
client = MongoClient('여기에 URL 입력')
db = client.dbsparta

 

데이터 넣기

doc = {
    'name':'bob',
    'age':27
}

db.users.insert_one(doc)

 

 

2. pymongo로 DB조작하기

1. mongoDB와 연결하기

#mongoDB와 연결하는 pymongo 명령어

from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('mongodb+srv://test:sparta@cluster0.euhwlug.mongodb.net/?retryWrites=true&w=majority', tlsCAFile=ca)
db = client.dbsparta

#test와 sparta는 개인이 mongoDB에 설정하는 영역이다.

 

2. pymongo 코드 요약

# 저장 - 예시
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'})

 

저장 예제)

# 'users'라는 collection에 {'name':'bobby','age':21}를 넣습니다.
db.users.insert_one({'name':'bobby','age':21})
db.users.insert_one({'name':'kay','age':27})
db.users.insert_one({'name':'john','age':30})

 

모든 결과값 보기 예제)

# 모든 데이터 뽑아보기
all_users = list(db.users.find({},{'_id':False}))
#이때 users는 Collections -> dbsparta -> users의 users이다.
#{'_id':False} 부분은 {'_id': ObjectId('6361e7eaf79a605865c058db'), 'name': 'bobby', 'age': 19}에서 {'_id': ObjectId('6361e7eaf79a605865c058db')을 빼고 출력하기 위함이다.


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

for user in all_users:      # 반복문을 돌며 모든 결과값을 보기
    print(user)

 

특정 결과값 보기 예제)

#이때 users는 Collections -> dbsparta -> users의 users이다.

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

 

수정하기 예제)

#이때 users는 Collections -> dbsparta -> users의 users이다.

db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
#"users라는 곳에 접속해서 업데이트를 하나 한다. name이 booby인 유저의 나이를 19로 바꿔준다."라는 명령이다.

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

 

삭제하기 예제)

#이때 users는 Collections -> dbsparta -> users의 users이다.

db.users.delete_one({'name':'bobby'})

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