몽고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이 존재해서 어떤것을 출력해야할지 몰라서 오류가 나는것인가요?

+ Recent posts