JOO

[스파르타코딩클럽] 웹개발종합반 3주차_DB개괄/MongoDB (작성중) 본문

NOTE

[스파르타코딩클럽] 웹개발종합반 3주차_DB개괄/MongoDB (작성중)

낮과밤_ 2021. 9. 30. 18:01

3시간에 1주치 분량을 권장하는 듯 한데, 나는 1주차 분량을 하루 한 번에 제대로 이해를 못하고 있다. 이 온라인 강의를 수강하는 대부분의 사람들은 이해력이 상당한 듯하다. 우리나라 사람들 워낙 똑똑하니 뭐..;; 나는 그냥 내 속도대로..어제 듣다가 만 MongoDB 부분을 이어서 듣는다. 권장 진도로는 약 1주 반 정도 늦고 있다. 1-2주차는 개인 일정 때문에 도저히 제대로 들을 수가 없었다. 주요 강의 내용과 코드 블럭의 원출처는 스파르타 코딩 클럽이다. 

 


 

3-10. MongoDB 설치 확인

크롬 주소창에 localhost:27017 이라고 쳐본다. 아래와 같은 텍스트 문구가 뜨면 된다. 

It looks like you are trying to access MongoDB over HTTP on the native driver port. 

 

3-12. pymongo로 DB조작하기

pymongo 기본 코드 

더보기

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

# 코딩 시작 insert / find / update / delete 

pymongo(insert)

from pymongo import MongoClient                   #Pymongo를 사용하겠다.
client = MongoClient('localhost', 27017)          #어디에? 내 컴퓨터에 들어있는 몽고DB 
db = client.dbsparta                              #dbsparta라고 하는 db라는 이름으로 접속,없으면 자동 생성 

doc = {'name':'bobby','age':21}                   #딕셔너리 쌓기
db.users.insert_one(doc)                          #db > users 안에 인서트

 mongoDB는 딕셔너리가 그냥 쌓이는 것. 몽고DB 데이터는 가시화되지 않으므로 Robo(로보) 3T에서 확인해준다.

pymongo(find)

same_ages = list(db.users.find({'age':21},{'_id':False}))
print(same_ages)


파이참 하단의 프린트 창에 아래와 같이 출력됐다.[{'name': 'jane', 'age': 21}, {'name': 'bobby', 'age': 21}, {'name': 'bobby', 'age': 21}, {'name': 'bobby', 'age': 21}]
리스트 안에 4개의 딕셔너리가 출력됐는데, 아까 insert 연습할 때, bobby를 반복해서 실행해서 그런 듯 하다. 

위의 결과로 새로이 알 수 있는 것은   
{'age:21'}은 조건이며, {'_id' : False} 로보 3T에서는 볼 수 있는 ID값은 나타내지 말라는 말이라 한다. 

from pymongo import MongoClient
client = MongoClient('localhost', 27017)
db = client.dbsparta

# insert / find / update / delete

same_ages = list(db.users.find({},{'_id':False}))

for person in same_ages:
	print(person)

저번에 배웠던 구문 활용해보기. 아래와 같이 출력됐다. 실행할 때 반복해서 그런 것 같네...;; 그대로 쌓이나 보다. 

{'name': 'john', 'age': 27}
{'name': 'smith', 'age': 30}
{'name': 'jane', 'age': 21}
{'name': 'john', 'age': 27}
{'name': 'jake', 'age': 40}
{'name': 'jake', 'age': 40}
{'name': 'bobby', 'age': 21}
{'name': 'bobby', 'age': 21}
{'name': 'bobby', 'age': 21}

Process finished with exit code 0