1. db 설치 확인: 크롬 창에 localhost:27017
It looks like you are trying to access MongoDB over HTTP on the native driver port.
2. robo 3T
- mongoDB가 저장하는 데이터는 그래픽인터페이스(GUI)를 제공하지 않아 우리 눈으로 확인 불가능
- robo 3T로 mongoDB 내부를 살펴볼 수 있음
robo 3T 세팅 (create -> 이름 설정)
3. database 개괄
- RDBMS(SQL): 행/열의 생김새가 정해진 엑셀에 데이터를 저장하는 것과 유사
- 중간에 새로운 요소 추가하여 데이터를 만들기 불편
- 정형화 되어있기에, 일관적이고 데이터 분석에 용이
- NoSQL: 딕셔너리 형태로 데이터 저장
- 데이터 개별적으로 다른 정보들을 저장
- 자유로운 데이터 적재, 일관성 부족할 수 있음
4. pymongo
- mongoDB 프로그램을 조작하기 위한 라이브러리
-
from pymongo import MongoClient # pymongo를 임포트 하기(패키지 설치 후에) client = MongoClient('localhost', 27017) # mongoDB는 27017 포트로 돌아갑니다. db = client.dbsparta # 'dbsparta'라는 이름의 db를 만듭니다. # MongoDB에 insert 하기 # 'users'라는 collection에 {'name':'bobby','age':21}를 넣습니다. db.users.insert_one({'name':'bobby','age':21}) db.users.insert_one({'name':'kay','age':27}) db.users.insert_one({'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)
# update # 생김새 db.people.update_many(찾을조건,{ '$set': 어떻게바꿀지 }) # 예시 - 오타가 많으니 이 줄을 복사해서 사용 db.users.update_one({'name':'bobby'},{'$set':{'age':19}}) user = db.users.find_one({'name':'bobby'}) print(user) # delete (거의 안씀) db.users.delete_one({'name':'bobby'}) user = db.users.find_one({'name':'bobby'}) print(user)
- update_many나 delete_many는 위험
-
pymongo 연습from pymongo import MongoClient client = MongoClient('localhost', 27017) db = client.dbsparta matrix = db.movies.find_one({'title':'매트릭스'},{'_id':False}) print(matrix['point']) same_point = list(db.movies.find({'point':matrix['point']},{'_id':False})) for movie in same_point: print(movie['title']) db.movies.update_one({'title':'매트릭스'},{'$set':{'point':'0'}}) # db에 point 값들이 string 이므로 자료형 통일
- robo 3T에 ""는 문자열 #는 숫자형
'course > spartacoding' 카테고리의 다른 글
[웹개발 종합반] 4주차 (1) Flask 기초 (0) | 2021.11.03 |
---|---|
[웹개발 종합반] 3주차 (5) 3주차 과제 (0) | 2021.11.02 |
[웹개발 종합반] 3주차 (3) 웹 스크래핑 (0) | 2021.11.01 |
[웹개발 종합반] 3주차 (2) Python 라이브러리 (0) | 2021.11.01 |
[웹개발 종합반] 3주차 (1) Python 기초 (0) | 2021.11.01 |