22_pymongo로 DB조작하기

yh271·2022년 4월 11일
0

웹개발 기초_3주차

목록 보기
6/9
  1. pymongo package 설치

    package 설치는: https://velog.io/@yh271/webbase17

  2. pymongo 기본 코드

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# 코딩 시작
  1. insert
    아래 코드 입력 후 Run 하면 아무 결과도 나타나지 않는다

    Studio 3T에 가서 MyLocalDB를 Refresh 하면

    dbsparta가 생긴 것을 확인할 수 있다.

    왼쪽 메뉴의 경로로 차근차근 들어가면 다음과 같은 데이터를 확인할 수 있다.
    (python에서 Run을 두번 해서 2개 있음)

    코드 해석
  • dbprac.py
#pymongo를 쓰겠습니다
from pymongo import MongoClient
#내 컴퓨터에서 지금 돌아가고 있는 mongoDB에 접속할 겁니다
client = MongoClient('localhost', 27017)
#dbsparta라고 하는 DB 이름으로 접속할 겁니다
db = client.dbsparta

# insert / find / update / delete

#MongoDB는 딕셔너리가 쌓이는 것
#doc 이라는 딕셔너리 생성
doc = {'name':'bobby','age':21}
#users라는 콜렉션에 넣는다.
#콜렉션: 비슷한 데이터끼리 모아놓은 것
db.users.insert_one(doc)


john이 추가됨

4. find

5. find: 반복문으로 한줄씩 출력됨
same_ages라는 list 안의 dictionary가 한줄씩 출력됨.

다음과 같이 빈 중괄호를 사용하면 모든 값이 출력됨

same_ages = list(db.users.find({},{'_id':False}))


6. find_one: 리스트 값 하나만 가지고 오기
'bobby'라는 'name'을 가진 사람을 하나만 가지고 온다.
여러 명 있어도 제일 위에 있는 하나만 가지고 오는 명령.

  • dbprac.py
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

# insert / find / update / delete

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


id 값 안보이게 하기

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

# insert / find / update / delete

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


리스트의 딕셔너리의 'age'의 값을 출력

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

# insert / find / update / delete

user = db.users.find_one({'name':'bobby'},{'_id':False})
print(user['age'])


7. update
명령이 복잡해서 복사-붙여넣기를 많이 이용함.

#update_one: name이 bobby인 맨위 사람을 찾아서 age를 19로 바꿔라.
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})


update_many()도 있으나, 잘 쓰이지 않음. 실수가 잦게 됨

#update_many: name이 bobby인 사람을 모두 찾아서 age를 19로 바꿔라.
db.users.update_many({'name':'bobby'},{'$set':{'age':19}})
  1. delete
    잘 쓰이지 않음.
#name이 bobby인 사람을 delete 해라.
db.users.delete_one({'name':'bobby'})


9. 전체 요약

  • dbprac.py
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

# insert / find / update / delete

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

0개의 댓글