DB
클라우드
pymongo
, dnspython
패키지가 필요하다.pip install pymongo
pip install dnspython
from pymongo import MongoClient
client = MongoClient('여기에 URL 입력') # URL : mongoDB 의 주소
db = client.dbsparta
from pymongo import MongoClient
client = MongoClient('mongodb+srv://<username>:<password>@cluster0.ek1pqyw.mongodb.net/?retryWrites=true&w=majority') # URL : mongoDB 의 주소
db = client.dbsparta
<username>:<password>
입력from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.ek1pqyw.mongodb.net/?retryWrites=true&w=majority') # URL : mongoDB 의 주소
db = client.dbsparta
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.ek1pqyw.mongodb.net/?retryWrites=true&w=majority') # URL : mongoDB 의 주소
db = client.dbsparta
# 데이터 입력
doc = {
'name':'영수',
'age':24
}
# 데이터 저장 : 입력된 데이터 doc 를 db 에 저장한다
db.users.insert_one(doc)
현재 상태에서 python 을 실행해도 실행 결과가 출력되지 않음
→ 대신 db에 저장됨
insert_one()
하나의 데이터가 들어온 것을 확인 할 수 있다.
users
는 dbsparta 안에 있는 colleciton
하나가 아닌, 다수의 데이터를 입력 및 저장하는 방법
# 여러개의 데이터를 입력 및 저장 하는 방법 1 : insert_one doc = { 'name':'가가', 'age':22 } db.users.insert_one(doc) doc = { 'name':'나나', 'age':23 } db.users.insert_one(doc) # 여러개의 데이터를 입력 및 저장 하는 방법 2 : insert_many mylist = [ {'name':'박가가', 'age':'20'}, {'name': '김나나', 'age':'21'} ] db.users.insert_many(mylist)
# 모든 데이터 가져오기
# 첫 번째 {} : find 할 조건 -> 모든 데이터를 가져오므로 공백
# 두 번째 {} : 제외할 조건 -> _id: 로 나오는 부분을 출력되지 않게 한다
all_users = list(db.users.find({},{'_id':False}))
for a in all_users:
print(a['name'])
# 하나의 데이터만 가져오기
user = db.users.find_one({'name':'bobby'})
print(user)
# 'name':'영수' 인 데이터 -> 'age':19 로 수정해라
db.users.update_one({'name':'영수'},{'$set':{'age':19}})
db.users.delete_one({'name':'영수'})
# mongoDB 와 연결
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.ek1pqyw.mongodb.net/?retryWrites=true&w=majority') # URL : mongoDB 의 주소
db = client.dbsparta
import requests
from bs4 import BeautifulSoup
URL = "https://movie.daum.net/ranking/reservation"
headers = {'User-Agent' : 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'}
data = requests.get(URL, headers=headers)
soup = BeautifulSoup(data.text, 'html.parser')
lis = soup.select('#mainContent > div > div.box_ranking > ol > li')
for li in lis:
rank = li.select_one('.rank_num').text
title = li.select_one('.link_txt').text.strip("\n")
rate = li.select_one('.txt_grade').text
doc = {
'title': title,
'rank': rank,
'rate': rate
}
db.movies.insert_one(doc) # 'movies' 라는 새로운 collection 으로 입력시킴
# mongoDB 와 연결
from pymongo import MongoClient
client = MongoClient('mongodb+srv://sparta:test@cluster0.ek1pqyw.mongodb.net/?retryWrites=true&w=majority')
db = client.dbsparta
movie = db.movies.find_one({'title':'가버나움'}) # 1. 'title':'가버나움' 인 데이터를 하나 찾아, movie 변수에 담는다
target_star = movie['star'] # 2. movie 변수에서 star 키값의 데이터를 star 변수에 담는다
movies = list(db.movies.find({'star':target_star})) # 3. moive 에서 'star':target_star 인 데이터를 모두 찾아 moives 변수에 담는다
for a in movies:
print(a['title'])