1. DB
"내가 원하는 데이터를 잘 찾기 위해서"
Index로 구분되어 관리되는 데이터!
<DB 형태에 따른 구분>
| SQL | NoSQL (Not only SQL) | |
| 구분 특징 | 칸에 채워서 관리 - 정형화된 데이터 | 자유롭게 관리 |
| 장점 | 이상한 데이터가 적음 찾을 때 속도가 빠름 |
확장성이 좋음. 유연한 대처 가능 (>초기 스타트업, 서비스에서 사용하면 좋음) |
| 단점 | 확장성이 낮음 |
2. mongoDB에 저장하기
pymongo.errors.ServerSelectionTimeoutError:
에러 메시지 때문에 정말 한참 고생했다 ... ^_ㅠ...
결과적으로 사용하고 있는 인터넷 환경 때문이었고 추가 설정해서 해결함 ㅠ_ㅠ
다만 코드를 바꾸기 전에 클라우드에 폴더가 있으면 충돌이 일어날 수 있다고해서 폴더의 위치도 조정해주었다.
해결 방법 >> 스파르타코딩클럽 FAQ에서 찾은 듯
from pymongo import MongoClient
import certifi
ca = certifi.where()
client = MongoClient('url', tlsCAFile=ca)
db = client.dbsparta
3. mongoDB의 데이터 파이썬으로 조정하기
# 저장 - 예시
doc = {'name':'bobby','age':21}
db.users.insert_one(doc)
# 한 개 찾기 - 예시
user = db.users.find_one({'name':'bobby'})
# 여러개 찾기 - 예시 ( _id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))
# 바꾸기 - 예시
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})
# 지우기 - 예시
db.users.delete_one({'name':'bobby'})
※ print 함수는 한꺼번에 표출은 안되고... for 문으로 하나씩 읽어오는 형태로 표출해줘야 한다.
#제목이 가버나움인 데이터를 찾으시오
movie = db.movies.find_one({'title':'가버나움'})
#가버나움의 star과 같은 데이터를 찾으시오
all_movies = list(db.movies.find({'star':movie['star']},{'_id':False}))
#그 데이터들을 하나씩 읽어서, title을 표출하시오
for m in all_movies:
print(m['title'])
#이렇게 하면 안됨
print(all_movies['title'])
번외. 3주차의 거대한 문제 : 인터프리터 설정
mongoDB 저장이 계속 안되어 해결하는 과정(2)에서 실습하던 폴더의 경로를 한번 바꿨다.
그랬더니 인터프리터에 문제가 생겨서 .. ^^ 이전에 설치해놓은 라이브러리 함수가 안먹고...
재설치를 해보려해도 계속 오류....
오류 메세지 & 구글링을 통하여 추측한 결과 인터프리터 설정을 할 때 보통 경로 하나에 대해서만 적용되기 때문에..
경로를 바꾸니 해당 인터프리터가 작동을 안하고 그렇다고 재설치도 안되는? (아마 충돌하니까?) 그런 문제였음
이것저것 뒤져보다가 결국

이 버튼을 눌러봤었는데 엥? 그동안 설치했던 라이브러리가 쭉- 나오면서 해결이 됐다

모든 프로젝트에서 사용할 수 있도록 설정하는게 간단하지만 후에 문제가 될 수도 있을 ^_^ 방법일 듯 한데
나야 뭐 전문 개발자 아니니까 ㅎ 별 문제 없을거라 생각하고....
일단은 이렇게 고... 추후에 문제 생기면 다시 그때가서 해결하지 뭐...
'Development > Web development' 카테고리의 다른 글
| 웹개발 4주차 : POST & GET (0) | 2022.02.04 |
|---|---|
| 웹개발 3주차 : (3) 과제에서 한 걸음 더 (0) | 2022.02.04 |
| 웹개발 3주차 : (1) 파이썬 기본 문법과 크롤링 (0) | 2022.01.28 |
| 웹개발 번외편: 덕담 공유 페이지 만들기 (0) | 2022.01.27 |
| 웹개발 2주차 : JQuery & Ajax (0) | 2022.01.21 |