[Sparta] 3주차 개발일지_pymongo
2022. 1. 26. 16:21ㆍ카테고리 없음

pymongo 란 ?
- mongoDB 라는 프로그램을 조작하기 위한 특별한 라이브러리
- mongoDB : 그냥 dict{} 이 쌓이는 것이라고 생각하면 됨, mongoDB가 알아서 비슷한 애들끼리 묶어줌 (robo3T) 에서 확인가능
▼ pymongo 기본코드
- pymongo 를 쓸때도 크롤링과 마찬가지로 기본코드가 필요하다.
from pymongo import MongoClient // # pymongo를 임포트 하기(패키지 인스톨 먼저 해야겠죠?)
client = MongoClient('localhost', 27017) // # mongoDB는 27017 포트로 돌아갑니다.
db = client.dbsparta // # 'dbsparta'라는 이름의 db를 만듭니다.
▶pymongo 에서 기억할 4가지
insert : 데이터를 넣기
find : 찾기
update : 기존의 정보를 업데이트
delete : 기존의 정보 삭제
# MongoDB에 insert 하기
db.users.insert_one({'name':'bobby','age':21})
db.users.insert_one({'name':'kay','age':27})
db.users.insert_one({'name':'john','age':30}) // # 'users'라는 collection에 {'name':'john','age':30}를 넣습니다.
# 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)
# 특정 결과 값을 뽑아 보기
user = db.users.find_one({'name':'bobby'})
print(user)
# 수정하기
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
pymongo 응용
1. 기존에 만들어둔 hello.py 폴더의 위에 임포트한다 ( 포스팅 맨 위에서 임포트 코드확인가능 )
2. 만들어둔 웹스크랩핑 결과를 변수 doc 로 묶어 db에 insert 하여 저장한다
doc = {
'rank' : rank,
'title' : title,
'star' : star
}
db.movies.insert_one(doc) // # doc 내용을 movies 라는 db에 (없으면 만들어서) 저장한다
▽ pymongo 로 insert 했을 때 robo3T 에서 웹스크래핑결과가 insert 되어져있는것을 아래와 같이 확인할 수 있다

이렇게 저장해놓은 웹스크래핑은 추후 쉽게 이용할 수 있다
웹 스크래핑 결과 이용하기
# 1.임포트
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta
# 2.선언
target_movie = db.movies.find_one({'title':'매트릭스'})
// 저장해놓은 movies db에서 title 이 '매트릭스'인 값을 찾아 target_movie 라는 변수로 저장해라 !
#3.
print (target_movie['star'])
// 웹스크래핑 결과중 star 기억나지 ? target_movie 의 'star' 값을 도출해라 !
△이와 같이 pymongo 는 이전에 웹스크래핑 결과를 기억하고 있으니 내가 원하는 값을 쉽게 찾을 수 있다