몽고DB 파이썬에서 사용가능하도록 IMPORT
from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta #스파르티 DB생성
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})) #여러개있어도 제일위에 있는것만 가져옴 #_id:false는 출력에 나타내지 말아라
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}}) #여러명 있을시 update_many로 모든사람 변경
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
퀴즈문제
score = db.movies.find_one({'title':'매트릭스'})
# print(score['star')
score2=score['star']
score3=list(db.movies.find({'star':score2},{'_id':False}))
print score3['title'] // 오류가 나는 이유는 score3안에는 많은 딕셔너리값 title이 여러개 있는데 이중 어떤것을 출력할것인가. 오류나지만 for을 돌려 하나씩 title을 출력하면 가능하다
숙제문제
파이썬에서 문자열나누기 split을 이용해 공백으로 나오는값도 나누어 [0]으로 문자만 출력되게 가능함
또는 공백제거는 .strip();해주면 공백이 사라짐.
질문 :
trs = soup.select('#old_content > table > tbody > tr') #여러개 가져오기 select
for tr in trs:
a_tag=tr.select_one('td.title > div > a')
if (a_tag is not None):
rank=tr.select_one('td:nth-child(1) > img')['alt']
title=a_tag.text
star=tr.select_one('td.point').text
doc={'rank':rank,'title':title,'star':star}
db.movies.insert_one(doc)
score = db.movies.find_one({'title':'매트릭스'})
# print(score['star')
score2=score['star']
score3=list(db.movies.find({'star':score2},{'_id':False}))
print(score3['title'] 오류가 나는데 print(score3['title'] 대신
for i in score3:
print(i['title']) 을 돌리면 오류가 안납니다. 혹시 이유가 print(score3['title'] 을 해버리면 score3안에 여러 title이 존재해서 어떤것을 출력해야할지 몰라서 오류가 나는것인가요?