본문 바로가기
Python

파이썬에서 파이몽고 사용 : pymongo로 mongoDB 활용

by Jann 2022. 1. 31.
728x90

파이썬에서 파이몽고 사용 : pymongo로 mongoDB 활용

파이썬 파이몽고 사용법 : pymongo로 mongoDB 활용

 

pymongo 기본 코드

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbjann

 

* Key : 데이터를 입력하고, 찾고, 바꾸고, 지우기!

# insert /find / update / delete

 

DB연결 & 데이터 입력하기 : pymongo(insert)

from pymongo import MongoClient           # pymongo 임포트
client = MongoClient('localhost', 27017)  # mongoDB는 27017 포트
db = client.dbjann                   # 'dbjann'라는 이름의 db 만들기

# MongoDB에 insert 하기

# '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})

 

데이터 찾기 : pymongo(find), pymongo(find_one)

from pymongo import MongoClient           # pymongo 임포트
client = MongoClient('localhost', 27017)  # mongoDB는 27017 포트
db = client.dbjann                   # 'dbjann'라는 이름의 db 만들기

# MongoDB에서 데이터 모두 보기
all_users = list(db.users.find({}))

# MongoDB에서 특정 조건의 데이터 모두 보기
same_ages = list(db.users.find({'age':21},{'_id':False}))

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

for user in all_users:      # 반복문을 돌며 모든 결과값을 보기
    print(user)
    
# find_one    
user = db.users.find_one({'name':'bobby'})
print(user)

 

데이터 바꾸기 : pymongo(update_one)

# update_many
db.people.update_many(찾을조건,{ '$set': 어떻게바꿀지 })

# update_one - many 대신 one 사용 
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

# 바꾼 데이터 찾기
user = db.users.find_one({'name':'bobby'})
print(user)

 

데이터 삭제 : pymongo(delete_one)

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

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

 

결론 : pymongo CRUD 코드 요약

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

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

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

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

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

 

728x90

댓글