본문 바로가기
[스파르타 코딩클럽]/비개발자를 위한, 웹개발 종합반

mongoDB기초/pymongo DB조작 코드

by 수민띠 2023. 2. 23.

NoSQL(Not Only SQL)

딕셔너리 형태로 데이터를 저장하는 데이터베이스로써 자유로운 데이터 적재에 유리하다. 그리고 관계형 데이터베이스보다 더 빠르고 확장성이 좋습니다. 이러한 특징은 대량의 데이터 처리나 실시간 데이터 처리 시 유용.

ex) mongoDB

 

DB의 실체

데이터를 쌓고 잘 가져올 수 있도록 데이터를 구조화하고 저장하는 프로그램

프로그램이므로 내 컴퓨터에도 데이터베이스를 설치할 수 있지만, 요즘엔 인터넷에 있는 컴퓨터에 올려 놓는다.

인터넷에 있는 컴퓨터에 올려놓는다 = 클라우드 환경에 파일을 저장한다

 

mongoDB연결하기

※ 현재 수강 중인 강의는 클라우드 환경에서 운영되는 mongoDB Atlas 사용

https://account.mongodb.com/account/register

 

 일반적으로, 파이썬은 로컬 컴퓨터에서 실행되고 mongoDB는 클라우드 서버에서 실행

※ 즉, 내 컴퓨터에서 파이썬을 통해 인터넷 상의 mongoDB에 연결하고 이를 통해 데이터를 저장하거나 가져오는 것.

 

파이썬으로 mongoDB라는 프로그램을 조작에 필요한 라이브러리 2개

pymongo - Python에서 MongoDB에 연결할 때 쓰는 라이브러리

dnspython - DNS 프로토콜에 대한 라이브러리.

DNS 레코드를 조작하는 데 사용되며, Python에서 DNS 서버를 쿼리하고 응답을 처리하는 데 사용

 

pymongo기본 코드

#pymongo 기본코드
from pymongo import MongoClient
client = MongoClient('여기에 몽고DB 주소 입력')
db = client.dbsparta

 

몽고db 주소 가져오기

DB Atlas 접속-> Projects -> project  -> Connet -> Connect your application ->

드라이버 및 버전 확인->복사버튼-> Close

※ 복사한 주소 입력 시, 설정한 비밀번호를 입력.  <password> 제거

 

pymongo로 DB조작코드 - 데이터는 딕셔너리형태로 넣어주면 됨

from pymongo import MongoClient
client = MongoClient('몽고db 주소')
db = client.dbsparta

#DB에 데이터 저장
#pymongo(insert_one) 
doc = {'name':'영수','age': 24}
db.users.insert_one(doc)
db.users.insert_one({'name':'영희','age':30})

#DB에서 데이터 찾기 - 한개 찾기
#pymongo(find_one) 
user = db.users.find_one({'name':'영수'})

#DB에서 데이터 찾기 - 여러개 찾기
#pymongo(find) #(_id 값은 제외하고 출력)
all_users = list(db.users.find({},{'_id':False}))

#수정하기 
pymongo(update_one)
db.users.update_one({'name':'bobby'},{'$set':{'age':19}})

#삭제하기-
#pymongo(delete_one)
db.users.delete_one({'name':'bobby'})

#가져온 데이터를 터미널에 찍어보기
print(all_users[0])         # 0번째 결과값을 보기
print(all_users[0]['name']) # 0번째 결과값의 'name'을 보기
for a in all_users:      # 반복문을 돌며 모든 결과값을 보기
    print(a)

users는 dbsparta 데이터베이스 내 Collections 이다.

데이터를 그냥 넣으면 혼돈스러우므로, 소그룹으로 분류한 것이라고 생각하자.

 

{} -> 조건이 없다는 걸 의미

{'_id':False} -> _id값을 제외하고 보겠다는 의미

{'_id':true} -> _id값을 포함하고 보겠다는 의미

 

DB Atlas에서 데이터 확인하는 방법

1. (좌)Browse Collections클릭 2.(우) dbsparta내에서 collections확인