js 공부(ft. sparta)/3주차
3-12. pymongo로 DB조작하기
c_sm
2023. 4. 13. 10:00
우선 딕셔너리를 더 추가하자.
철수는 먼저 데이터로 넣었으니 지워주고 다른 두명을 만들어준다.
doc = { #딕셔너리 생성
'name':'영희',
'age':30
}
db.users.insert_one(doc) #딕셔너리를 db에 넣는다.
doc = { #딕셔너리 생성
'name':'철수',
'age':20
}
db.users.insert_one(doc) #딕셔너리를 db에 넣는다.
똑같이 실행해주고 DB사이트에 들어가서 refresh 버튼을 눌러주면 아래 사진처럼 잘 들어간것을 확인할 수 있다.
1.데이터 가져오기
먼저 pymongo(find) 코드스니펫을 복사해준다. 모든 데이터를 가져오는것 부터 하겠다.
all_users = list(db.users.find({},{'_id':False})) #모든 데이터 뽑아보기
코드를 보면 list이기 때문에 반복문으로 돌려서 한번 확인해보겠다.
all_users = list(db.users.find({},{'_id':False}))
db users에서 가져오는데 첫번째{}가 조건을 넣는곳이다. 하지만 위코드를 보면 조건은 아무것도 없다.
그리고 뒤 {_id:False}는 없애면 _id가 붙어서 나온다. 보기가 그러니 안보겠다는 거다.
이번엔 하나의 데이터만 가져오는것을 하겠다.
아래 처럼 쓰고 확인해보면 결과가 나온다.
마찬가지로 _id를 안보고싶으면 아래 코드처럼 작성하면 된다.
user = db.users.find_one({},{'id':False})
2.조작하기
먼저 영수의 나이를 바꿔보겠다.
먼저 코드스니펫에서 복사해 붙여넣어준다.
db.users.update_one({'name':'영수'},{'$set':{'age':19}})
저장하고 실행해주면 터미널이 아닌 사이트에서 확인해볼수있다.
3.지우기
코드는 아래와 같다.
db.users.delete_one({'name':'영수'})
써주고 실행하면 마찬가지로 터미널엔 아무것도 나오지 않지만 사이트에 가보면 영수데이터가 없어진것을 확인할 수 있다.
4. 코드 요약
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.ig1ol8y.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
# 저장 - 예시
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'})
위에서 코드를 가지고 사용하면 된다.